Python—实训day11—Pyecharts绘图
1繪圖邏輯
(1)選擇圖表類型;
(2)添加數(shù)據(jù);
(3)設(shè)置全局變量;
(4)顯示及保存圖表。
1.1圖表類型
from pyecharts.charts import *
1.2添加數(shù)據(jù)
散點(diǎn)圖、折線圖等二維數(shù)據(jù)圖形可通過 .add_xaxis(xaxis_data=x)和.add_yaxis(series_name='', y_axis=y)方法設(shè)置。
餅圖等一維圖形可通過.add(series_name=‘’, data_pair=[(i, j)for i, j in zip(lab, num)])方法設(shè)置參數(shù)。
1.3顯示、保存圖表
- .get_options() # 該行只為了查看配置項,方便調(diào)試時使用
- .render():默認(rèn)將會在當(dāng)前目錄下生成一個 render.html 的文件,支持 path 參數(shù),設(shè)置文件保存位置,如 render(r"e:\my_first_chart.html"),文件用瀏覽器打開。
- .Jupyter Notebook() 直接調(diào)用 render_notebook ()隨時隨地渲染圖表
1.4全局配置組件:定制圖表
使用 options 配置項,在 pyecharts 中,一切皆 Options。
全局配置項可通過 set_global_options 方法設(shè)置。
2散點(diǎn)圖
| #==================1散點(diǎn)圖 from pyecharts.charts import Scatter #pip install pyecharts -i https://mirrors.aliyun.com/pypi/simple import numpy as np import pyecharts.options as opts x = np.linspace(0, 10, 50) y = np.sin(x) #------------1.1繪制簡單散點(diǎn)圖-------------------- #----第一步:選擇圖表(散點(diǎn)圖) scatter = Scatter() #----第二步:添加數(shù)據(jù) scatter.add_xaxis(xaxis_data=x) #添加x軸數(shù)據(jù) scatter.add_yaxis(series_name='', y_axis=y) #添加y軸數(shù)據(jù) #----第三步:保存圖表 scatter.render() #------------1.2豐富圖形-------------------- #第一步:選擇圖表(散點(diǎn)圖) scatter = Scatter() #第二步:添加數(shù)據(jù) scatter.add_xaxis(xaxis_data=x) #添加x軸數(shù)據(jù) scatter.add_yaxis(series_name='y=sin(x)', y_axis=y, label_opts=opts.LabelOpts(is_show=False)) #添加y軸數(shù)據(jù)。label_opts=opts.LabelOpts(is_show=False)表隱藏數(shù)值標(biāo)簽 #第三步:全局配置項 scatter.set_global_opts(title_opts=opts.TitleOpts(title='散點(diǎn)圖'), #添加標(biāo)題 tooltip_opts=opts.TooltipOpts(axis_pointer_type='cross') #設(shè)置提示框浮層 ) #第四步:保存圖表 scatter.render() |
3折線圖
| #==================2折線圖 from pyecharts.charts import Line #-------2.1繪制簡單折線圖-------------------- #----第一步:選擇圖表(折線圖) line = Line() #----第二步:添加數(shù)據(jù) line.add_xaxis(xaxis_data=x) #添加x軸數(shù)據(jù) line.add_yaxis(series_name='y=sin(x)', y_axis=y) #添加y軸數(shù)據(jù) #----第三步:保存圖表 line.render(r'F:\Desktop\a.html') #---------2.2豐富圖形-------------------- y1 = np.cos(x) #----第一步:選擇圖表(折線圖) line = Line() #----第二步:添加數(shù)據(jù) line.add_xaxis(xaxis_data=x) #添加x軸數(shù)據(jù) line.add_yaxis(series_name='y=sin(x)', y_axis=y, label_opts=opts.LabelOpts(is_show=False)) #添加y變量數(shù)據(jù) line.add_yaxis(series_name='y=cos(x)', y_axis=y1) #添加y1變量數(shù)據(jù) #----第三步:設(shè)置全局配置項 line.set_global_opts(title_opts=opts.TitleOpts(title='折線圖'), #添加標(biāo)題 tooltip_opts=opts.TooltipOpts(axis_pointer_type='cross') #設(shè)置提示框浮層 ) #----第四步:保存圖表 line.render(r'F:\Desktop\a.html') |
4柱狀圖
| #==================3柱狀圖 from pyecharts.charts import Bar num = [100, 120, 150, 200, 350] label = ['星期一', '星期二', '星期三', '星期四', '星期五'] #-------3.1繪制簡單柱狀圖-------------------- #----第一步:選擇圖表(柱狀圖) bar = Bar() #----第二步:添加數(shù)據(jù) bar.add_xaxis(xaxis_data=label) #添加x軸數(shù)據(jù) bar.add_yaxis(series_name='銷售額', y_axis=num) #添加y軸數(shù)據(jù) #----第三步:保存圖表 bar.render(r'F:\Desktop\a.html') #-------3.2繪制多個數(shù)據(jù)柱狀圖-------------------- num1 = [120, 150, 200, 180, 160] #----第一步:選擇圖表(柱狀圖) bar = Bar() #----第二步:添加數(shù)據(jù) bar.add_xaxis(xaxis_data=label) #添加x軸數(shù)據(jù) bar.add_yaxis(series_name='第一周銷售額', y_axis=num) #添加num變量數(shù)據(jù) bar.add_yaxis(series_name='第二周銷售額', y_axis=num1) #添加num1變量數(shù)據(jù) #----第三步:保存圖表 bar.render(r'F:\Desktop\a.html') |
5餅圖
| #==================4餅圖 from pyecharts.charts import Pie #----第一步:選擇圖表(餅圖) pie = Pie() #----第二步:添加數(shù)據(jù) pie.add(series_name='', data_pair=[(i, j) for i,j in zip(label, num)]) #----第三步:保存圖表 pie.render(r'F:\Desktop\b.html') |
6箱線圖
| #==================5箱線圖 #-------5.1繪制簡單箱線圖-------------------- from pyecharts.charts import Boxplot box = Boxplot() box.add_xaxis(xaxis_data=['第一周銷售額']) box.add_yaxis(series_name='銷售額', y_axis=box.prepare_data([num])) #box.prepare_data表轉(zhuǎn)換數(shù)據(jù) box.render(r'F:\Desktop\b.html') #-------5.2多個數(shù)據(jù)繪制箱線圖-------------------- box = Boxplot() box.add_xaxis(xaxis_data=['第一周銷售額', '第二周銷售額']) box.add_yaxis(series_name='銷售額', y_axis=box.prepare_data([num, num1])) box.render(r'F:\Desktop\b.html') |
7熱力圖
| #==============6熱力圖 from pyecharts.charts import HeatMap import random x = ["12a", "1a", "2a", "3a", "4a", "5a", "6a", "7a", "8a", "9a", "10a", "11a","12p", "1p", "2p", "3p", "4p", "5p", "6p", "7p", "8p", "9p", "10p", "11p"] y = ["Saturday", "Friday", "Thursday", "Wednesday", "Tuesday", "Monday", "Sunday"] data = [[i, j, random.randint(0, 50)] for i in range(len(x)) for j in range(len(y))] heatmap = HeatMap() heatmap.add_xaxis(xaxis_data=x) heatmap.add_yaxis(series_name='', yaxis_data=y, value=data) #y軸數(shù)據(jù)使用參數(shù)yaxis_data設(shè)置。value設(shè)置系列數(shù)據(jù)項,其實(shí)就是顏色深淺。 heatmap.render(r'F:\Desktop\b.html') |
8詞云圖
| #============7詞云圖 from pyecharts.charts import WordCloud name =['Sam S Club', 'Macys', 'Amy Schumer', 'Jurassic World', 'Charter Communications', 'Chick Fil A', 'Planet Fitness', 'Pitch Perfect', 'Express', 'Home', 'Johnny Depp', 'Lena Dunham', 'Lewis Hamilton', 'KXAN', 'Mary Ellen Mark', 'Farrah Abraham', 'Rita Ora', 'Serena Williams', 'NCAA baseball tournament', 'Point Break'] value =[10000, 6181, 4386, 4055, 2467, 2244, 1898, 1484, 1112, 965, 847, 582, 555, 550, 462, 366, 360, 282, 273, 265] wordcloud = WordCloud() wordcloud.add(series_name='', data_pair=[(i, j) for i,j in zip(name,value)]) wordcloud.render(r'F:\Desktop\b.html') |
9并行多圖
| #============8并行多圖 #-------8.1上下并行-------------------- from pyecharts.charts import Scatter, Line, Grid import numpy as np import pyecharts.options as opts x = np.linspace(0, 10, 50) y = np.sin(x) y1 = np.cos(x) #散點(diǎn)圖 scatter = Scatter() scatter.add_xaxis(xaxis_data=x) scatter.add_yaxis(series_name='', y_axis=y, label_opts=opts.LabelOpts(is_show=False)) #折線圖 line = Line() line.add_xaxis(xaxis_data=x) line.add_yaxis(series_name='', y_axis=y1, label_opts=opts.LabelOpts(is_show=False)) grid = Grid() grid.add(scatter, grid_opts=opts.GridOpts(pos_top='60%')) grid.add(line, grid_opts=opts.GridOpts(pos_bottom='60%')) grid.render(r'F:\Desktop\b.html') #-------8.2左右并行-------------------- grid = Grid() grid.add(scatter, grid_opts=opts.GridOpts(pos_left='55%')) grid.add(line, grid_opts=opts.GridOpts(pos_right='55%')) grid.render(r'F:\Desktop\b.html') #-------8.3疊加圖表-------------------- #柱狀圖 bar = Bar() bar.add_xaxis(xaxis_data=label) #添加x軸數(shù)據(jù) bar.add_yaxis(series_name='第一周銷售額', y_axis=num) #添加y軸數(shù)據(jù) #折線圖 line = Line() line.add_xaxis(xaxis_data=range(len(num1))) line.add_yaxis(series_name='第二周銷售額', y_axis=num1) bar.overlap(line) bar.render(r'F:\Desktop\b.html') |
總結(jié)
以上是生活随笔為你收集整理的Python—实训day11—Pyecharts绘图的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Python—实训day10—Matpl
- 下一篇: Python—实训day12—汽车用户消