pyEcharts 大儿子,会动的柱状图首先登场

2020-11-24 09:50:39 浏览数 (1)

话不多说,上才艺

开篇寒暄两句

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()

柱状图的展示就到这里啦,但是精彩可是远远不会停止呢!

感兴趣的同学可以跟着小编的代码试一下,下次我们有更精彩的图表!

敬请期待!

0 人点赞