利用数据可视化作业的机会学了一下piecharts基本操作,记录一下避免下次踩坑。
一开始没注意教程用的版本不一样,频频报错,浪费了很多时间。查看版本的方式:
import pyecharts
pyecharts.__version__
使用的是国家数据网站上的工业数据,可以直接下载
先导入pyecharts
import pyecharts.options as opts
from pyecharts.charts import Line, Bar, Pie
1. 总体变化趋势
作柱形图和折线图结合图形,存在折线和数字被遮挡的问题,没能解决
def bar_line1(x_data,y_data1,y_data2):
bar = (Bar()
.add_xaxis(x_data)
.add_yaxis('民用汽车拥有量(万辆)',y_data1)
.add_yaxis('汽车驾驶员人数(万人)',y_data2,gap="0%")
.set_series_opts(label_opts=opts.LabelOpts(font_size=14)) # 不显示数字
)
# bar.render('汽车.html')
line = (Line()
.add_xaxis(x_data)
.add_yaxis('民用汽车拥有量(万辆)',y_data1,
markline_opts=opts.MarkLineOpts(data=[opts.MarkLineItem(type_='average')]),)
.add_yaxis('汽车驾驶员人数(万人)',y_data2,
markline_opts=opts.MarkLineOpts(data=[opts.MarkLineItem(type_='average')]),)
.set_series_opts(label_opts=opts.LabelOpts(is_show=False))
)
# line.render('汽车.html')
bar.overlap(line)
bar.render("bar_line1.html")
?2.?不同类别对比
def pie1(x_data,y_data):
pie = (Pie()
.add('', [list(z) for z in zip(x_data, y_data)],
radius=["30%", "75%"])
.set_global_opts(title_opts=opts.TitleOpts(title="中国民用汽车保有量(万辆)", subtitle="民用载货汽车"))
.set_series_opts(label_opts=opts.LabelOpts(formatter="{b}: {d}%"))
)
pie.render('pie1.html')
?3. 增长趋势
? ? ? ? 好像只能标记一个点
def line1(x_data,y_data1,y_data2):
line = (Line()
.add_xaxis(x_data)
.add_yaxis('新注册民用载客汽车(万辆)',y_data1,
linestyle_opts=opts.LineStyleOpts(width=2),
markpoint_opts=opts.MarkPointOpts(data=[opts.MarkPointItem(type_='max')]),
markline_opts=opts.MarkLineOpts(data=[opts.MarkLineItem(type_='average')]),)
.add_yaxis('新注册民用载货汽车(万辆)',y_data2,
linestyle_opts=opts.LineStyleOpts(width=2),
markpoint_opts=opts.MarkPointOpts(data=[opts.MarkPointItem(type_='min')]),
markline_opts=opts.MarkLineOpts(data=[opts.MarkLineItem(type_='average')]),)
)
line.render("line1.html")
?
?没敢尝试调太多参数,有机会再学习
|