前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >pyEcharts 大儿子,会动的柱状图首先登场

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

作者头像
数据山谷
发布2020-11-24 09:50:39
6250
发布2020-11-24 09:50:39
举报
文章被收录于专栏:数据山谷数据山谷

话不多说,上才艺

开篇寒暄两句

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

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

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

敬请期待!

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-11-19,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 数据山谷 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档