1. 【matplotlib绘图思路】
0. 准备数据(符合传参的需求)—— 数据爬取,数据清洗,数据可视化
1. 创建画布实例
2. 在该画布实例划分区域,并在对应区域创建坐标系实例(直角坐标系,极坐标实例)
3. 通过坐标系实例调用绘图方法,完成绘图
4. 图表辅助元素定制及样式美化
5. 展示图表(渲染图表)
2.【pyecharts绘图思路(面向对象)】
0. 准备数据(符合传参的需求)
1. 导入需要的图表类(Bar,Line,Pie...)
2. 通过导入的类,创建实例
3. 往该实例填充数据
4. 设置“系列配置项”和“全局配置项”(类似于matplotlib图表样式美化和辅助元素定制)
5. 展示图表(渲染图表)
3.pyecharts绘制柱形图折线图
柱形图和折线图融合在同一个坐标系,运行代码如下:
# 导入模块 import pyecharts.options as opts from pyecharts.charts import Bar, Line # x轴数据 x_data = ["2014年", "2015年", "2016年", "2017年", "2018年", "2019年", "2020年", "2021年"] # 标签名 zzf_list = ["诊疗量(万人次)", "同比增速(%)"] # "诊疗量(万人次)"的数据 ax1 = [87430, 90912, 96225, 101885, 107147, 116390, 105764, 120215] # "同比增速(%)的数据 ax2 = [7.40, 4.00, 5.83, 5.81, 5.16, 8.63, -9.31, 13.66] # 链式调用 bar = ( Bar(init_opts=opts.InitOpts(width="1000px", height="500px")) # 设置柱形图宽度与高度 .add_xaxis(xaxis_data=x_data) # 添加x轴的数据 .add_yaxis( series_name="诊疗量(万人次)", # 图例名:诊疗量(万人次) y_axis=ax1, ##y轴柱形图数据 yaxis_index=1, # 表示y轴的索引,用于拥有多个y轴的单图表中。 label_opts=opts.LabelOpts(is_show=False), # 不显示柱形图数据 ) .extend_axis( yaxis=opts.AxisOpts( name="诊疗量(万人次)", # y轴名称 type_="value", position="left" # 位于y轴左侧 ) ) .extend_axis( yaxis=opts.AxisOpts( name="同比增速(%)", # y轴名称 type_="value", position="right", # 位于y轴右侧 ) ) .set_global_opts( # 设置全局配置项 title_opts=opts.TitleOpts(title="2014-2021年中国中医类医疗卫生机构诊疗量"), # 标题名称 legend_opts=opts.LegendOpts(pos_left="35%"), # 图例距离左边边距:35% tooltip_opts=opts.TooltipOpts(trigger="axis", axis_pointer_type="cross"), # 显示提示框组件 ) .set_series_opts( itemstyle_opts=opts.ItemStyleOpts( # 图元样式配置项 opacity=0.4), # 设置柱形图透明度:0.4 ) ) line = ( Line() # 创建Line类的对象 .add_xaxis(x_data) # 添加x轴的数据 .add_yaxis( series_name="同比增速(%)", # 图例名:同比增速(%) y_axis=ax2, # y轴折线图数据 yaxis_index=2, # 表示y轴的索引,用于拥有多个y轴的单图表中。 bar.overlap(line).render()