话不多说,上才艺
开篇寒暄两句
pyEcharts 是一款将 Python 和 Echars 结合起来的强大可视化神器,大家近期看到的诸如疫情路线图都可以分分钟实现!是不是已经迫不及待了,接下来小编带领大家一步步走进 pyecharts 的世界,各种神图手到擒来!!
一波相关库先 import 起来
代码语言:javascript复制# 导入options配置项
from pyecharts import options as opts
# 导入柱状图
from pyecharts.charts import Bar
# 导入Faker随机生成标签
from pyecharts.faker import Faker
# 使用random随机生成数值
import random
数据造起来
代码语言:javascript复制phone=Faker.phones
data1=random.sample(range(0, 100), 7)
data2=random.sample(range(0, 100), 7)
附上开篇柱状图代码
代码语言:javascript复制bar=Bar()
# 添加x轴数据
bar.add_xaxis(phone)
# 添加y轴数据
bar.add_yaxis('A店',data1)
bar.add_yaxis('B店',data2)
# 添加全局变量(标题--主标题,副标题,图例)
bar.set_global_opts(title_opts=opts.TitleOpts(title='手机销售量',subtitle='A、B两门店对比'),
legend_opts=opts.LegendOpts(is_show=True))
bar.render_notebook()
进一步优化:添加最高销量数据标签,添加最低销量辅助线
代码语言:javascript复制bar=Bar()
bar.add_xaxis(phone)
bar.add_yaxis('A店',data1)
bar.add_yaxis('B店',data2)
bar.set_global_opts(title_opts=opts.TitleOpts(title='手机销售量',subtitle='A、B两门店对比'),
legend_opts=opts.LegendOpts(is_show=True)
)
# 设置系列变量(标签,最大值点,最小值线)
bar.set_series_opts(label_opts=opts.LabelOpts(is_show=True),
markpoint_opts=opts.MarkPointOpts(data=[opts.MarkPointItem(type_='max',name='最大值')]),
markline_opts=opts.MarkLineOpts(data=[opts.MarkPointItem(type_='min',name='最小值')])
)
bar.render_notebook()
效果
变个样子:躺下更舒服!
代码语言:javascript复制bar=Bar()
bar.add_xaxis(phone)
bar.add_yaxis('A店',data1)
bar.add_yaxis('B店',data2)
bar.set_global_opts(title_opts=opts.TitleOpts(title='手机销售量',subtitle='A、B两门店对比'),
legend_opts=opts.LegendOpts(is_show=True)
)
bar.set_series_opts(label_opts=opts.LabelOpts(is_show=True,position='right'),
markpoint_opts=opts.MarkPointOpts(data=[opts.MarkPointItem(type_='max',name='最大值')]),
markline_opts=opts.MarkLineOpts(data=[opts.MarkPointItem(type_='min',name='最小值')])
)
# X、Y轴互换
bar.reversal_axis()
bar.render_notebook()
效果
我再变:老弟来我肩膀上看更舒服!
代码语言:javascript复制bar=Bar()
bar.add_xaxis(phone)
# 堆积柱状图,同个类目轴上系列配置相同的 stack 值可以堆叠放置,category_gap设置柱宽
bar.add_yaxis('A店',data1,stack="stack1", category_gap="50%")
bar.add_yaxis('B店',data2,stack="stack1", category_gap="50%")
bar.set_global_opts(title_opts=opts.TitleOpts(title='手机销售量',subtitle='A、B两门店对比'),
legend_opts=opts.LegendOpts(is_show=True)
)
bar.set_series_opts(label_opts=opts.LabelOpts(is_show=True),
markpoint_opts=opts.MarkPointOpts(data=[opts.MarkPointItem(type_='max',name='最大值')]),
markline_opts=opts.MarkLineOpts(data=[opts.MarkPointItem(type_='min',name='最小值')])
)
bar.render_notebook()
效果
开篇大佬要来了!!!
代码语言:javascript复制# 导入主题
from pyecharts.globals import ThemeType
data1=random.sample(range(20, 800), 30)
data2=random.sample(range(30, 1300), 30)
# 设置一个喜欢的主题
bar = Bar(init_opts=opts.InitOpts())
# 随机生成横坐标
bar.add_xaxis(Faker.days_attrs)
bar.add_yaxis("小米", data1)
bar.add_yaxis("苹果", data2)
# 设置滚动条,工具箱
bar.set_global_opts(
title_opts=opts.TitleOpts(title="小米、苹果销量统计图"),
datazoom_opts=opts.DataZoomOpts(),
toolbox_opts=opts.ToolboxOpts(pos_left='80%',orient='horizontal'),
tooltip_opts=opts.TooltipOpts(is_show=True,background_color='blue')
)
bar.render_notebook()
柱状图的展示就到这里啦,但是精彩可是远远不会停止呢!
感兴趣的同学可以跟着小编的代码试一下,下次我们有更精彩的图表!
敬请期待!