Python 데이터 시각화를 위해 Pyecharts를 사용하는 방법
1. Pyecharts 설치
pip install pyecharts
2. 차트 기본
2.1 테마 스타일
InitOpts() 메소드를 사용하여 테마 스타일 추가,
이 메소드의 주요 매개변수는 다음과 같습니다.
width | 캔버스 너비, 문자열 형식 필요(예: width="500px" |
---|---|
height | 캔버스 높이, 문자열 형식 필요, 예: width="500px" |
chart_id | ) | 차트 ID는 차트의 고유 식별자입니다. 여러 차트
page_title | 웹페이지 제목, 문자열 형식 |
theme | 차트 테마가 있는 경우 서로 다른 차트를 구분하는 데 사용됩니다. ThemeType 모듈에서 제공 |
bg_color | 차트 배경색, 문자열 형식 |
선택할 수 있는 스타일은 다음과 같습니다. |
2.2 차트 제목
차트에 제목을 추가하려면 다음을 수행해야 합니다. set_global_options() 메소드 title_opts 매개변수를 사용하세요.
2.3 범례
범례를 설정하려면 set_global_opts() 메서드 매개 변수의 legend_opts를 전달해야 합니다.
2.4 프롬프트 상자
프롬프트 상자 설정은 주로 set_global_opts() 메소드의 tooltip_opts 매개변수를 통해 설정됩니다.
2.5 시각적 매핑
시각적 매핑은 set_global_opts() 메소드의 Visualmap_opts 매개변수를 통해 설정됩니다.
2.6 도구 상자
도구 상자는 set_global_opts() 메서드의 toolbox_opts 매개 변수를 통해 설정됩니다.
2.7 지역 확대/축소
지역 확대/축소는 set_global_opts() 메서드의 datazoom_opts 매개변수를 통해 설정됩니다.
3. 히스토그램 바 모듈
히스토그램 그리기는 Bar 모듈을 통해 구현됩니다.
메인 메소드
add_xaxis() | x축 데이터 | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
add_yaxis() | y축 데이터 | |||||||||||
reversal_axis() | x, y축 데이터 반전 | |||||||||||
add_dataset() | 원본 데이터 | |||||||||||
主要参数 | 描述 |
---|---|
series_name | 系列名称。用于提示文本和图例标签。 |
data_pair | 数据项,格式为形如[(key1,value1),(key2,value2)] |
color | 系列标签的颜色。 |
radius | 饼图的半径。默认设成百分比形式,默认是相对于容器的高和宽中较小的一方的一半 |
rosetype | 是否展开为南丁格尔玫瑰图,可以取的值有radius货area,radius表示通过扇区圆心角展现数据的大小,即默认的扇形图;area表示所有扇区的圆心角的角度相同,通过半径来展现数据大小 |
from pyecharts.charts import Pie from pyecharts import options as opts from pyecharts.globals import ThemeType x_data = ['AAA', 'BBB', 'CCC', 'DDD', 'EEE', 'FFF'] y_data = [200, 200, 100, 400, 500, 600] # 将数据转换为目标格式 data = [list(z) for z in zip(x_data, y_data)] # 数据排序 data.sort(key=lambda x: x[1]) pie = Pie(init_opts=opts.InitOpts(theme=ThemeType.MACARONS)) pie.add( series_name="类别", # 序列名称 data_pair=data, # 数据 ) pie.set_global_opts( # 饼形图标题 title_opts=opts.TitleOpts( title="各类别数量分析", pos_left="center"), # 不显示图例 legend_opts=opts.LegendOpts(is_show=False), ) pie.set_series_opts( # 序列标签 label_opts=opts.LabelOpts(), ) pie.render("pie.html")
图像效果如下:
5.2 南丁格尔玫瑰图
from pyecharts.charts import Pie from pyecharts import options as opts from pyecharts.globals import ThemeType x_data = ['AAA', 'BBB', 'CCC', 'DDD', 'EEE', 'FFF', 'GGG', 'HHH', 'III', 'JJJ', 'KKK', 'LLL', 'MMM', 'NNN', 'OOO'] y_data = [200, 100, 400, 50, 600, 300, 500, 700, 800, 900, 1000, 1100, 1200, 1300, 1500] # 将数据转换为目标格式 data = [list(z) for z in zip(x_data, y_data)] # 数据排序 data.sort(key=lambda x: x[1]) # 创建饼形图并设置画布大小 pie = Pie(init_opts=opts.InitOpts(theme=ThemeType.ROMANTIC, width='300px', height='400px')) # 为饼形图添加数据 pie.add( series_name="类别", data_pair=data, radius=["8%", "160%"], # 内外半径 center=["65%", "65%"], # 位置 rosetype='area', # 玫瑰图,圆心角相同,按半径大小绘制 color='auto' # 颜色自动渐变 ) pie.set_global_opts( # 不显示图例 legend_opts=opts.LegendOpts(is_show=False), # 视觉映射 visualmap_opts=opts.VisualMapOpts(is_show=False, min_=100, # 颜色条最小值 max_=450000, # 颜色条最大值 ) ) pie.set_series_opts( # 序列标签 label_opts=opts.LabelOpts(position='inside', # 标签位置 rotate=45, font_size=8) # 字体大小 ) pie.render("pie2.html")
图像效果如下:
6. 箱线图 Boxplot模块
绘制箱线图使用的是Boxplot类。
这里有一个细节,准备y轴数据y_data时需要在列表外再套一层列表,否则图线不会被显示。
绘制箱线图使用的是Boxplot模块,
主要的方法有
add_xaxis()和add_yaxis()
from pyecharts.charts import Boxplot from pyecharts.globals import ThemeType from pyecharts import options as opts y_data = [[5, 20, 22, 21, 23, 26, 25, 24, 28, 26, 29, 30, 50, 61]] boxplot = Boxplot(init_opts=opts.InitOpts(theme=ThemeType.INFOGRAPHIC)) boxplot.add_xaxis([""]) boxplot.add_yaxis('', y_axis=boxplot.prepare_data(y_data)) boxplot.render("boxplot.html")
图像效果如下:
7. 涟漪特效散点图 EffectScatter模块
绘制涟漪图使用的是EffectScatter模块,代码示例如下:
from pyecharts.charts import EffectScatter from pyecharts import options as opts from pyecharts.globals import ThemeType x = [2011, 2012, 2013, 2014, 2015] x_data = [str(i) for i in x] y1 = [1, 3, 2, 5, 8] y2 = [2, 6, 5, 6, 7] y3 = [5, 7, 4, 3, 1] scatter = EffectScatter(init_opts=opts.InitOpts(theme=ThemeType.VINTAGE)) scatter.add_xaxis(x_data) scatter.add_yaxis("", y1) scatter.add_yaxis("", y2) scatter.add_yaxis("", y3) # 渲染图表到HTML文件,存放在程序所在目录下 scatter.render("EffectScatter.html")
图像效果如下:
8. 词云图 WordCloud模块
绘制词云图使用的是WordCloud模块,
主要的方法有add()方法。
add()方法的主要参数如下:
add()方法主要的参数有
准备一个txt文件(001.txt),文本内容以《兰亭集序》为例:
永和九年,岁在癸丑,暮春之初,会于会稽山阴之兰亭,修禊事也。群贤毕至,少长咸集。此地有崇山峻岭,茂林修竹,又有清流激湍,映带左右,引以为流觞曲水,列坐其次。虽无丝竹管弦之盛,一觞一咏,亦足以畅叙幽情。
是日也,天朗气清,惠风和畅。仰观宇宙之大,俯察品类之盛,所以游目骋怀,足以极视听之娱,信可乐也。
夫人之相与,俯仰一世。或取诸怀抱,悟言一室之内;或因寄所托,放浪形骸之外。虽趣舍万殊,静躁不同,当其欣于所遇,暂得于己,快然自足,不知老之将至;及其所之既倦,情随事迁,感慨系之矣。向之所欣,俯仰之间,已为陈迹,犹不能不以之兴怀,况修短随化,终期于尽!古人云:“死生亦大矣。”岂不痛哉!
每览昔人兴感之由,若合一契,未尝不临文嗟悼,不能喻之于怀。固知一死生为虚诞,齐彭殇为妄作。后之视今,亦犹今之视昔,悲夫!故列叙时人,录其所述,虽世殊事异,所以兴怀,其致一也。后之览者,亦将有感于斯文。
代码示例如下:
from pyecharts.charts import WordCloud from jieba import analyse # 基于TextRank算法从文本中提取关键词 textrank = analyse.textrank text = open('001.txt', 'r', encoding='UTF-8').read() keywords = textrank(text, topK=30) list1 = [] tup1 = () # 关键词列表 for keyword, weight in textrank(text, topK=30, withWeight=True): # print('%s %s' % (keyword, weight)) tup1 = (keyword, weight) # 关键词权重 list1.append(tup1) # 添加到列表中 # 绘制词云图 mywordcloud = WordCloud() mywordcloud.add('', list1, word_size_range=[20, 100]) mywordcloud.render('wordclound.html')
词云图效果如下:
9. 热力图 HeatMap模块
绘制热力图使用的是HeatMap模块。
下边以双色球案例为例,数据使用生成的随机数,绘制出热力图:
import pyecharts.options as opts from pyecharts.charts import HeatMap import pandas as pd import numpy as np # 创建一个33行7列的DataFrame,数据使用随机数生成。每个数据表示该位置上该数字出现的次数 s1 = np.random.randint(0, 200, 33) s2 = np.random.randint(0, 200, 33) s3 = np.random.randint(0, 200, 33) s4 = np.random.randint(0, 200, 33) s5 = np.random.randint(0, 200, 33) s6 = np.random.randint(0, 200, 33) s7 = np.random.randint(0, 200, 33) data = pd.DataFrame( {'位置一': s1, '位置二': s2, '位置三': s3, '位置四': s4, '位置五': s5, '位置六': s6, '位置七': s7 }, index=range(1, 34) ) # 数据转换为HeatMap支持的列表格式 value1 = [] for i in range(7): for j in range(33): value1.append([i, j, int(data.iloc[j, i])]) # 绘制热力图 x = data.columns heatmap=HeatMap(init_opts=opts.InitOpts(width='600px' ,height='650px')) heatmap.add_xaxis(x) heatmap.add_yaxis("aa", list(data.index), value=value1, # y轴数据 # y轴标签 label_opts=opts.LabelOpts(is_show=True, color='white', position="center")) heatmap.set_global_opts(title_opts=opts.TitleOpts(title="双色球中奖号码热力图", pos_left="center"), legend_opts=opts.LegendOpts(is_show=False), # 不显示图例 # 坐标轴配置项 xaxis_opts=opts.AxisOpts( type_="category", # 类目轴 # 分隔区域配置项 splitarea_opts=opts.SplitAreaOpts( is_show=True, # 区域填充样式 areastyle_opts=opts.AreaStyleOpts(opacity=1) ), ), # 坐标轴配置项 yaxis_opts=opts.AxisOpts( type_="category", # 类目轴 # 分隔区域配置项 splitarea_opts=opts.SplitAreaOpts( is_show=True, # 区域填充样式 areastyle_opts=opts.AreaStyleOpts(opacity=1) ), ), # 视觉映射配置项 visualmap_opts=opts.VisualMapOpts(is_piecewise=True, # 分段显示 min_=1, max_=170, # 最小值、最大值 orient='horizontal', # 水平方向 pos_left="center") # 居中 ) heatmap.render("heatmap.html")
热力图效果如下:
10. 水球图 Liquid模块
绘制水球图使用的是Liquid模块。
from pyecharts.charts import Liquid liquid = Liquid() liquid.add('', [0.39]) liquid.render("liquid.html")
水球图效果如下:
11. 日历图 Calendar模块
绘制日历图使用的是Calendar模块
主要使用的方法是add()方法
import pandas as pd import numpy as np from pyecharts import options as opts from pyecharts.charts import Calendar data = list(np.random.random(30)) # 求最大值和最小值 mymax = round(max(data), 2) mymin = round(min(data), 2) # 生成日期 index = pd.date_range('20220401', '20220430') # 合并列表 data_list = list(zip(index, data)) # 生成日历图 calendar = Calendar() calendar.add("", data_list, calendar_opts=opts.CalendarOpts(range_=['2022-04-01', '2022-04-30'])) calendar.set_global_opts( title_opts=opts.TitleOpts(title="2022年4月某指标情况", pos_left='center'), visualmap_opts=opts.VisualMapOpts( max_=mymax, min_=mymin+0.1, orient="horizontal", is_piecewise=True, pos_top="230px", pos_left="70px", ), ) calendar.render("calendar.html")
日历图效果如下:
위 내용은 Python 데이터 시각화를 위해 Pyecharts를 사용하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

Video Face Swap
완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











PHP는 주로 절차 적 프로그래밍이지만 객체 지향 프로그래밍 (OOP)도 지원합니다. Python은 OOP, 기능 및 절차 프로그래밍을 포함한 다양한 패러다임을 지원합니다. PHP는 웹 개발에 적합하며 Python은 데이터 분석 및 기계 학습과 같은 다양한 응용 프로그램에 적합합니다.

PHP는 웹 개발 및 빠른 프로토 타이핑에 적합하며 Python은 데이터 과학 및 기계 학습에 적합합니다. 1.PHP는 간단한 구문과 함께 동적 웹 개발에 사용되며 빠른 개발에 적합합니다. 2. Python은 간결한 구문을 가지고 있으며 여러 분야에 적합하며 강력한 라이브러리 생태계가 있습니다.

VS 코드는 파이썬을 작성하는 데 사용될 수 있으며 파이썬 애플리케이션을 개발하기에 이상적인 도구가되는 많은 기능을 제공합니다. 사용자는 다음을 수행 할 수 있습니다. Python 확장 기능을 설치하여 코드 완료, 구문 강조 및 디버깅과 같은 기능을 얻습니다. 디버거를 사용하여 코드를 단계별로 추적하고 오류를 찾아 수정하십시오. 버전 제어를 위해 git을 통합합니다. 코드 서식 도구를 사용하여 코드 일관성을 유지하십시오. 라인 도구를 사용하여 잠재적 인 문제를 미리 발견하십시오.

Python은 부드러운 학습 곡선과 간결한 구문으로 초보자에게 더 적합합니다. JavaScript는 가파른 학습 곡선과 유연한 구문으로 프론트 엔드 개발에 적합합니다. 1. Python Syntax는 직관적이며 데이터 과학 및 백엔드 개발에 적합합니다. 2. JavaScript는 유연하며 프론트 엔드 및 서버 측 프로그래밍에서 널리 사용됩니다.

VS 코드는 Windows 8에서 실행될 수 있지만 경험은 크지 않을 수 있습니다. 먼저 시스템이 최신 패치로 업데이트되었는지 확인한 다음 시스템 아키텍처와 일치하는 VS 코드 설치 패키지를 다운로드하여 프롬프트대로 설치하십시오. 설치 후 일부 확장은 Windows 8과 호환되지 않을 수 있으며 대체 확장을 찾거나 가상 시스템에서 새로운 Windows 시스템을 사용해야합니다. 필요한 연장을 설치하여 제대로 작동하는지 확인하십시오. Windows 8에서는 VS 코드가 가능하지만 더 나은 개발 경험과 보안을 위해 새로운 Windows 시스템으로 업그레이드하는 것이 좋습니다.

PHP는 1994 년에 시작되었으며 Rasmuslerdorf에 의해 개발되었습니다. 원래 웹 사이트 방문자를 추적하는 데 사용되었으며 점차 서버 측 스크립팅 언어로 진화했으며 웹 개발에 널리 사용되었습니다. Python은 1980 년대 후반 Guidovan Rossum에 의해 개발되었으며 1991 년에 처음 출시되었습니다. 코드 가독성과 단순성을 강조하며 과학 컴퓨팅, 데이터 분석 및 기타 분야에 적합합니다.

VS 코드 확장은 악의적 인 코드 숨기기, 취약성 악용 및 합법적 인 확장으로 자위하는 등 악성 위험을 초래합니다. 악의적 인 확장을 식별하는 방법에는 게시자 확인, 주석 읽기, 코드 확인 및주의해서 설치가 포함됩니다. 보안 조치에는 보안 인식, 좋은 습관, 정기적 인 업데이트 및 바이러스 백신 소프트웨어도 포함됩니다.

vs 코드에서는 다음 단계를 통해 터미널에서 프로그램을 실행할 수 있습니다. 코드를 준비하고 통합 터미널을 열어 코드 디렉토리가 터미널 작업 디렉토리와 일치하는지 확인하십시오. 프로그래밍 언어 (예 : Python의 Python Your_file_name.py)에 따라 실행 명령을 선택하여 성공적으로 실행되는지 여부를 확인하고 오류를 해결하십시오. 디버거를 사용하여 디버깅 효율을 향상시킵니다.
