1绘图逻辑
(1)选择图表类型;
(2)添加数据;
(3)设置全局变量;
(4)显示及保存图表。
1.1图表类型
from pyecharts.charts import *
1.2添加数据
散点图、折线图等二维数据图形可通过 .add_xaxis(xaxis_data=x)和.add_yaxis(series_name='', y_axis=y)方法设置。
饼图等一维图形可通过.add(series_name=‘’, data_pair=[(i, j)for i, j in zip(lab, num)])方法设置参数。
1.3显示、保存图表
- .get_options() # 该行只为了查看配置项,方便调试时使用
- .render():默认将会在当前目录下生成一个 render.html 的文件,支持 path 参数,设置文件保存位置,如 render(r"e:\my_first_chart.html"),文件用浏览器打开。
- .Jupyter Notebook() 直接调用 render_notebook ()随时随地渲染图表
1.4全局配置组件:定制图表
使用 options 配置项,在 pyecharts 中,一切皆 Options。
全局配置项可通过 set_global_options 方法设置。
2散点图
#==================1散点图 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绘制简单散点图-------------------- #----第一步:选择图表(散点图) scatter = Scatter() #----第二步:添加数据 scatter.add_xaxis(xaxis_data=x) #添加x轴数据 scatter.add_yaxis(series_name='', y_axis=y) #添加y轴数据 #----第三步:保存图表 scatter.render() #------------1.2丰富图形-------------------- #第一步:选择图表(散点图) scatter = Scatter() #第二步:添加数据 scatter.add_xaxis(xaxis_data=x) #添加x轴数据 scatter.add_yaxis(series_name='y=sin(x)', y_axis=y, label_opts=opts.LabelOpts(is_show=False)) #添加y轴数据。label_opts=opts.LabelOpts(is_show=False)表隐藏数值标签 #第三步:全局配置项 scatter.set_global_opts(title_opts=opts.TitleOpts(title='散点图'), #添加标题 tooltip_opts=opts.TooltipOpts(axis_pointer_type='cross') #设置提示框浮层 ) #第四步:保存图表 scatter.render() |
3折线图
#==================2折线图 from pyecharts.charts import Line #-------2.1绘制简单折线图-------------------- #----第一步:选择图表(折线图) line = Line() #----第二步:添加数据 line.add_xaxis(xaxis_data=x) #添加x轴数据 line.add_yaxis(series_name='y=sin(x)', y_axis=y) #添加y轴数据 #----第三步:保存图表 line.render(r'F:\Desktop\a.html') #---------2.2丰富图形-------------------- y1 = np.cos(x) #----第一步:选择图表(折线图) line = Line() #----第二步:添加数据 line.add_xaxis(xaxis_data=x) #添加x轴数据 line.add_yaxis(series_name='y=sin(x)', y_axis=y, label_opts=opts.LabelOpts(is_show=False)) #添加y变量数据 line.add_yaxis(series_name='y=cos(x)', y_axis=y1) #添加y1变量数据 #----第三步:设置全局配置项 line.set_global_opts(title_opts=opts.TitleOpts(title='折线图'), #添加标题 tooltip_opts=opts.TooltipOpts(axis_pointer_type='cross') #设置提示框浮层 ) #----第四步:保存图表 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() #----第二步:添加数据 bar.add_xaxis(xaxis_data=label) #添加x轴数据 bar.add_yaxis(series_name='销售额', y_axis=num) #添加y轴数据 #----第三步:保存图表 bar.render(r'F:\Desktop\a.html') #-------3.2绘制多个数据柱状图-------------------- num1 = [120, 150, 200, 180, 160] #----第一步:选择图表(柱状图) bar = Bar() #----第二步:添加数据 bar.add_xaxis(xaxis_data=label) #添加x轴数据 bar.add_yaxis(series_name='第一周销售额', y_axis=num) #添加num变量数据 bar.add_yaxis(series_name='第二周销售额', y_axis=num1) #添加num1变量数据 #----第三步:保存图表 bar.render(r'F:\Desktop\a.html') |
5饼图
#==================4饼图 from pyecharts.charts import Pie #----第一步:选择图表(饼图) pie = Pie() #----第二步:添加数据 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表转换数据 box.render(r'F:\Desktop\b.html') #-------5.2多个数据绘制箱线图-------------------- 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轴数据使用参数yaxis_data设置。value设置系列数据项,其实就是颜色深浅。 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) #散点图 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轴数据 bar.add_yaxis(series_name='第一周销售额', y_axis=num) #添加y轴数据 #折线图 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') |