pyecharts应用2 柱状图

0 涉及网站

pyecharts 官方文档  https://pyecharts.org/#/zh-cn/intro

pyecharts 官方展示  http://pyecharts.herokuapp.com/

系列配置项    https://pyecharts.org/#/zh-cn/series_options

ToolboxOpts:工具箱配置项
https://pyecharts.org/#/zh-cn/global_options?id=toolboxopts%EF%BC%9A%E5%B7%A5%E5%85%B7%E7%AE%B1%E9%85%8D%E7%BD%AE%E9%A1%B9

LegendOpts:图例配置项
https://pyecharts.org/#/zh-cn/global_options?id=legendopts%EF%BC%9A%E5%9B%BE%E4%BE%8B%E9%85%8D%E7%BD%AE%E9%A1%B9

DataZoomOpts:区域缩放配置项
https://pyecharts.org/#/zh-cn/global_options?id=datazoomopts%EF%BC%9A%E5%8C%BA%E5%9F%9F%E7%BC%A9%E6%94%BE%E9%85%8D%E7%BD%AE%E9%A1%B9
 

1 导入库

from pyecharts import options as opts
from pyecharts.charts import Bar

2 普通柱状图

c=Bar()
c.add_xaxis(['生命值','远程伤害','攻击速度','持续时间'])

c.add_yaxis('加农炮',[742,175,1,30])
c.add_yaxis('迫击炮',[1012,183,1,30])
c.add_yaxis('炸弹塔',[1126,184,1.6,25])
c.add_yaxis('特斯拉电塔',[1152,230,1.1,35])
c.add_yaxis('地狱之塔',[1749,848,0.4,30])

c.set_global_opts(
    title_opts=opts.TitleOpts(
        title='CR单位属性',
        subtitle='防御塔'))

c.render('cr_base.html')

柱状图效果图

相比于matplotlib,这种柱状图的好处是,我可以只选定几栏查看:

3 链式实现柱状图

c1=(
    Bar()
    .add_xaxis(['生命值','远程伤害','攻击速度','持续时间'])
    .add_yaxis('加农炮',[742,175,1,30])
    .add_yaxis('迫击炮',[1012,183,1,30])
    .add_yaxis('炸弹塔',[1126,184,1.6,25])
    .add_yaxis('特斯拉电塔',[1152,230,1.1,35])
    .add_yaxis('地狱之塔',[1749,848,0.4,30])
    .set_global_opts(
        title_opts=opts.TitleOpts(
            title='CR单位属性',
            subtitle='防御塔'))
    .render('cr_base1.html')
)

柱状图的效果和2是一样的

4 is_selected:是否选中图例

c1=(
    Bar()
    .add_xaxis(['生命值','远程伤害','攻击速度','持续时间'])
    .add_yaxis('加农炮',
               # 系列名称,用于 tooltip 的显示,legend 的图例筛选。
               [742,175,1,30],
               #系列数据
               is_selected=True,
               #是否选中图例
              )
    .add_yaxis('迫击炮',
               [1012,183,1,30],
              is_selected=False)
    .add_yaxis('炸弹塔',
               [1126,184,1.6,25],
              is_selected=False)
    .add_yaxis('特斯拉电塔',
               [1152,230,1.1,35],
              is_selected=True)
    .add_yaxis('地狱之塔',
               [1749,848,0.4,30],
              is_selected=False)
    .set_global_opts(
        title_opts=opts.TitleOpts(
            title='CR单位属性',
            subtitle='防御塔'))
    .render('cr_base1.html')
)

我们在代码中,设定了“加农炮”和“特斯拉电塔”是is_selected。那么图是不是这样的呢?答案是是的

5 stack——叠加柱状图

这里还有一条“set_series_opts( label_opts=opts.LabelOpts(is_show=False))”,加了这条语句之后,就不会显示柱状图上的数字了。

c1=(
    Bar()
    .add_xaxis(['生命值','远程伤害','攻击速度','持续时间'])
    .add_yaxis('加农炮',
               # 系列名称,用于 tooltip 的显示,legend 的图例筛选。
               [742,175,1,30],
               #系列数据
               stack='3圣水',
#数据堆叠,相同的 stack 值可以堆叠放置。 
              )
    .add_yaxis('迫击炮',
               [1012,183,1,30],
              stack='5圣水',
              )
    .add_yaxis('炸弹塔',
               [1126,184,1.6,25],
              stack='5圣水',
              )
    .add_yaxis('特斯拉电塔',
               [1152,230,1.1,35],
              stack='4圣水',
              )
    .add_yaxis('地狱之塔',
               [1749,848,0.4,30],
              stack='5圣水',
              )
    .set_series_opts(
        label_opts=opts.LabelOpts(is_show=False))
    #不显示标签
    .set_global_opts(
        title_opts=opts.TitleOpts(
            title='CR单位属性',
            subtitle='防御塔'))
    .render('cr_base1.html')
)

 6 color——设置颜色

配置add_yaxis函数的color参数。

优点是方便,缺点是有时会出现颜色错位。
更好的方法是使用“系列配置项”中的“ItemStyleOpts:图元样式配置项”
具体可以见 https://pyecharts.org/#/zh-cn/series_options

c1=(
    Bar()
    .add_xaxis(['生命值','远程伤害','攻击速度','持续时间'])
    .add_yaxis('加农炮',
               # 系列名称,用于 tooltip 的显示,legend 的图例筛选。
               [742,175,1,30],
               #系列数据
               color='red',
 
              )
    .add_yaxis('迫击炮',
               [1012,183,1,30],
              color='green',
              )
    .add_yaxis('炸弹塔',
               [1126,184,1.6,25],
              color='blue',
              )
    .add_yaxis('特斯拉电塔',
               [1152,230,1.1,35],
              color='pink',
              )
    .add_yaxis('地狱之塔',
               [1749,848,0.4,30],
              color='purple',
              )
    .set_global_opts(
        title_opts=opts.TitleOpts(
            title='CR单位属性',
            subtitle='防御塔'))
    .render('cr_base1.html')
)

7 设置标签相对于柱状图的位置

c1=(
    Bar()
    .add_xaxis(['生命值','远程伤害','攻击速度','持续时间'])
    .add_yaxis('加农炮',
               # 系列名称,用于 tooltip 的显示,legend 的图例筛选。
               [742,175,1,30],
               #系列数据
               label_opts=opts.LabelOpts(
                   position='insideBottom'),

              )
    .add_yaxis('迫击炮',
               [1012,183,1,30],
              label_opts=opts.LabelOpts(
                   position='insideTop',
                   font_size=20),
              )
# 设置标签位置和字号
    .add_yaxis('炸弹塔',
               [1126,184,1.6,25],
              )
    .add_yaxis('特斯拉电塔',
               [1152,230,1.1,35],
              )
    .add_yaxis('地狱之塔',
               [1749,848,0.4,30],
              )
    .set_global_opts(
        title_opts=opts.TitleOpts(
            title='CR单位属性',
            subtitle='防御塔'))
    .render('cr_base1.html')
)

由于后三个是一样的效果,所以我们点开一个就可以了

8 添加工具栏

前面都不变,改变set_global_opts里面的内容

c.set_global_opts(
        title_opts=opts.TitleOpts(
            title='CR单位属性',
            subtitle='防御塔'),
        toolbox_opts=opts.ToolboxOpts(),
# 显示工具栏
    )

看到右上方出现了状态栏

9 是否显示图例

前面都不变,改变set_global_opts里面的内容

    c.set_global_opts(
        title_opts=opts.TitleOpts(
            title='CR单位属性',
            subtitle='防御塔'),
        legend_opts=opts.LegendOpts(is_show=False) #是否显示图例
    )

10 缩放滑块

前面都不变,改变set_global_opts里面的内容

 c.set_global_opts(
        title_opts=opts.TitleOpts(
            title='CR单位属性',
            subtitle='防御塔'),
        datazoom_opts=opts.DataZoomOpts(),
#Bar-显示水平方向的缩放滑块
    )

11 层叠折线与柱状图

Faker见 pyecharts应用3 Faker函数库_刘文巾的博客-CSDN博客

from pyecharts import options as opts
from pyecharts.charts import Bar, Line
from pyecharts.faker import Faker

v1 = [2.0, 4.9, 7.0, 23.2, 25.6, 76.7, 135.6, 162.2, 32.6, 20.0, 6.4, 3.3]
v2 = [2.6, 5.9, 9.0, 26.4, 28.7, 70.7, 175.6, 182.2, 48.7, 18.8, 6.0, 2.3]
v3 = [2.0, 2.2, 3.3, 4.5, 6.3, 10.2, 20.3, 23.4, 23.0, 16.5, 12.0, 6.2]

bar = (
    Bar()
    .add_xaxis(Faker.months)
    .add_yaxis("蒸发量", v1)
    .add_yaxis("降水量", v2)
    #到这里和之前的柱状图都是一样的

    .extend_axis(
        yaxis=opts.AxisOpts(
            axislabel_opts=opts.LabelOpts(formatter="{value} °C"), interval=5
        )
    )
    #添加一个新的坐标轴(副y坐标,右边的y的格式)
    
    .set_series_opts(label_opts=opts.LabelOpts(is_show=False))
    #不显示柱状图的标签
    
    .set_global_opts(
        title_opts=opts.TitleOpts(title="Overlap-bar+line"),
        yaxis_opts=opts.AxisOpts(axislabel_opts=opts.LabelOpts(formatter="{value} ml")),
    )
    #主y坐标(左边的y)的格式
)

line = Line().add_xaxis(Faker.months).add_yaxis("平均温度", v3, yaxis_index=1)
#yaxis_index=1的意思是使用第1个坐标(坐标编号从0开始,0是主坐标,1是副坐标)

bar.overlap(line)
#line也画在柱状图上

bar.render("cr_base1.html")

12 MarkPoint 柱体顶部加相应气球图

c=Bar()
c.add_xaxis(['生命值','远程伤害','攻击速度','持续时间'])
 
c.add_yaxis('加农炮',[742,175,1,30])
c.add_yaxis('迫击炮',[1012,183,1,30])
c.add_yaxis('炸弹塔',[1126,184,1.6,25])
c.add_yaxis('特斯拉电塔',[1152,230,1.1,35])
c.add_yaxis('地狱之塔',[1749,848,0.4,30])
 
c.set_global_opts(
    title_opts=opts.TitleOpts(
        title='CR单位属性',
        subtitle='防御塔'))

####################################################################
c.set_series_opts(
    markpoint_opts=opts.MarkPointOpts(
        data=[opts.MarkPointItem(type_='max',name='最大值'),
             opts.MarkPointItem(type_='min',name='最小值'),
             opts.MarkPointItem(type_='average',name='平均值')]))
####################################################################

c.render('1.html')

 

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
PyEcharts是一个用于生成Echarts图表的Python类库。它结合了Python的数据处理能力和Echarts的数据可视化功能。通过使用PyEcharts,您可以轻松地创建各种类型的图表,包括折线图、柱状图、散点图等。PyEcharts提供了一套简单易用的API,使得图表的创建和编辑变得非常方便。您可以使用pip命令安装PyEcharts,并在代码中引入相关的模块来创建图表。例如,您可以使用Line、Bar、Scatter模块创建折线图、柱状图和散点图。您只需要提供相应的数据即可。另外,您还可以设置图表的标题、坐标轴名称等图形样式。最后,您可以使用render方法将图表渲染为HTML文件。总的来说,PyEcharts是一个非常实用的工具,可以帮助您通过Python生成各种漂亮的图表。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [pyecharts应用2 柱状图](https://blog.csdn.net/qq_40206371/article/details/118097285)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* *3* [PyEcharts应用教程及实例](https://blog.csdn.net/SeekforU/article/details/122079392)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

UQI-LIUWJ

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值