千家信息网

Python pyecharts怎么绘制条形图

发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,这篇文章主要介绍了Python pyecharts怎么绘制条形图的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Python pyecharts怎么绘制条形图文章都会有所收
千家信息网最后更新 2026年11月02日Python pyecharts怎么绘制条形图

这篇文章主要介绍了Python pyecharts怎么绘制条形图的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Python pyecharts怎么绘制条形图文章都会有所收获,下面我们一起来看看吧。

一、简介

pyecharts是一个由百度开源的数据可视化,凭借着良好的交互性,精巧的图表设计,得到了众多开发者的认可。而Python 是一门富有表达力的语言,很适合用于数据处理。当数据分析遇上数据可视化时,pyecharts诞生了。Echarts是用JS来写的,而我们使用pyecharts则可以使用Python来调用里面的API。

优点:

简洁的 API 设计,使用如丝滑般流畅,支持链式调用

囊括了 30+ 种常见图表,应有尽有

支持主流 Notebook环境,Jupyter Notebook 和 JupyterLab

可轻松集成至 Flask,Django 等主流 Web 框架

高度灵活的配置项,可轻松搭配出精美的图表

多达 400+地图文件以及原生的百度地图,为地理数据可视化提供强有力的支持。

二、整理数据

安装:

pip install pyecharts

1、配置主题

Bar(init_opts=opts.InitOpts(theme=ThemeType.LIGHT)) # 第一种Bar({"theme": ThemeType.MACARONS}) # 第二种

2、柱状图 Bar - Bar_base_dict_config

import osfrom matplotlib import pyplot as plt from pyecharts import options as optsfrom pyecharts.charts import Barfrom pyecharts.commons.utils import JsCodefrom pyecharts.globals import ThemeTypelist1=cnbodfsort['REGION'].tolist()list2=cnbodfsort['PRICE'].tolist()list3=cnbodfsort['PERSONS'].tolist()c = (    Bar(init_opts=opts.InitOpts(theme=ThemeType.LIGHT))    .add_xaxis(list1)    .add_yaxis("票价", list2, stack="stack1", category_gap="50%")    .add_yaxis("人次", list3,   stack="stack1",category_gap="50%")    .set_series_opts(        label_opts=opts.LabelOpts(            position="right",            formatter=JsCode(                "function(x){return Number(x.data).toFixed(2);}"            ),        )    )    .set_global_opts(        xaxis_opts=opts.AxisOpts(axislabel_opts=opts.LabelOpts(rotate=-15)),        title_opts=opts.TitleOpts(title='中国电影票房',subtitle='按地区比较票价与人次')    ))# c.render("cnbo1.html") # 生成html图片# os.system("cnbo01.html")  # 执行完代码直接跳出来图片c.render_notebook() # 直接在代码区域展示图片

3、样例数据 Faker.choose()

使用这段代码会随机调用系统的样例参数:

.add_xaxis(Faker.choose())

from pyecharts.faker import Fakerlist1=cnbodfsort['REGION'].tolist()list2=cnbodfsort['PRICE'].tolist()list3=cnbodfsort['PERSONS'].tolist()c = (    Bar({"theme": ThemeType.MACARONS})  ### 配置好看的图表主题!!!    .add_xaxis(Faker.choose())    ### 这句话表示使用随机的后台样例数据    .add_yaxis("票价", list2, stack="stack1", category_gap="50%")    .add_yaxis("人次", list3,   stack="stack1",category_gap="50%")    .set_series_opts(        label_opts=opts.LabelOpts(            position="right",            formatter=JsCode(                "function(x){return Number(x.data).toFixed(2);}"            ),        )    )    .set_global_opts(        xaxis_opts=opts.AxisOpts(axislabel_opts=opts.LabelOpts(rotate=-15)),        title_opts={"text":"样例数据","subtext":"使用Faker.choose()"}    ))c.render("cnbo1.html") # 生成html图片# os.system("cnbo1.html")  # 执行完代码直接跳出来图片c.render_notebook() # 直接在代码区域展示图片

4、滚动条 Bar - Bar_datazoom_slider

datazoom_opts=opts.DataZoomOpts()

表示可以滑动的滚动条:

list1=cnbodfsort['REGION'].tolist()list2=cnbodfsort['PRICE'].tolist()list3=cnbodfsort['PERSONS'].tolist()c = (    Bar(init_opts=opts.InitOpts(theme=ThemeType.LIGHT))    .add_xaxis(list1)    .add_yaxis("票价", list2, stack="stack1", category_gap="50%")    .add_yaxis("人次", list3,   stack="stack1",category_gap="50%")    .set_series_opts(        label_opts=opts.LabelOpts(            position="right",            formatter=JsCode(                "function(x){return Number(x.data).toFixed(2);}"            ),        )    )    .set_global_opts(        xaxis_opts=opts.AxisOpts(axislabel_opts=opts.LabelOpts(rotate=-15)),        title_opts=opts.TitleOpts(title='中国电影票房',subtitle='按地区比较票价与人次'),         brush_opts=opts.BrushOpts() ,### 使用这个可以使图片的右上角多出来一些工具        datazoom_opts=opts.DataZoomOpts(), ### 可以使最下面多出滚动条    ))c.render("cnbo2.html") # 生成html图片# os.system("cnbo01.html")  # 执行完代码直接跳出来图片c.render_notebook() # 直接在代码区域展示图片

5、鼠标移动效果 Bar - Bar_datazoom_inside

根据鼠标来放大与缩小的效果:

from pyecharts import options as optsfrom pyecharts.charts import Barfrom pyecharts.faker import Fakerc = (    Bar()    .add_xaxis(Faker.days_attrs)    .add_yaxis("商家A", Faker.days_values, color=Faker.rand_color())    .set_global_opts(        title_opts=opts.TitleOpts(title="Bar-DataZoom(inside)"),        datazoom_opts=opts.DataZoomOpts(type_="inside"),    )    .render("bar_datazoom_inside.html"))

6、显示最值 Bar - Bar_markpoint_type

list1=cnbodfsort['REGION'].tolist()list2=cnbodfsort['PRICE'].tolist()list3=cnbodfsort['PERSONS'].tolist()c = (    Bar(init_opts=opts.InitOpts(theme=ThemeType.HALLOWEEN))    .add_xaxis(list1)    .add_yaxis("票价", list2, stack="stack1", category_gap="50%")    .add_yaxis("人次", list3,   stack="stack1",category_gap="50%")    .set_series_opts(        label_opts=opts.LabelOpts(            position="right",            formatter=JsCode(                "function(x){return Number(x.data).toFixed(2);}"            ),        ),        markpoint_opts=opts.MarkPointOpts( #########            data=[            opts.MarkPointItem(type_="max", name="最大值"),            opts.MarkPointItem(type_="min", name="最小值"),            opts.MarkPointItem(type_="average", name="平均值"),        ]           ),#########    )    .set_global_opts(        xaxis_opts=opts.AxisOpts(axislabel_opts=opts.LabelOpts(rotate=-15)),        title_opts=opts.TitleOpts(title='中国电影票房',subtitle='按地区比较票价与人次'),         brush_opts=opts.BrushOpts() ,### 使用这个可以使图片的右上角多出来一些工具        datazoom_opts=opts.DataZoomOpts(orient='vertical'),     ))c.render("cnbo2.html") # 生成html图片# os.system("cnbo01.html")  # 执行完代码直接跳出来图片c.render_notebook() # 直接在代码区域展示图片

7、改变滚动条在侧面 Bar - Bar_datazoom_slider_vertical

list1=cnbodfsort['REGION'].tolist()list2=cnbodfsort['PRICE'].tolist()list3=cnbodfsort['PERSONS'].tolist()c = (    Bar(init_opts=opts.InitOpts(theme=ThemeType.CHALK))    .add_xaxis(list1)    .add_yaxis("票价", list2, stack="stack1", category_gap="50%")    .add_yaxis("人次", list3,   stack="stack1",category_gap="50%")    .set_series_opts(        label_opts=opts.LabelOpts(            position="right",            formatter=JsCode(                "function(x){return Number(x.data).toFixed(2);}"            ),        )    )    .set_global_opts(        xaxis_opts=opts.AxisOpts(axislabel_opts=opts.LabelOpts(rotate=-15)),        title_opts=opts.TitleOpts(title='中国电影票房',subtitle='按地区比较票价与人次'),         brush_opts=opts.BrushOpts() ,### 使用这个可以使图片的右上角多出来一些工具        datazoom_opts=opts.DataZoomOpts(orient='vertical'),     ))c.render("cnbo2.html") # 生成html图片# os.system("cnbo01.html")  # 执行完代码直接跳出来图片c.render_notebook() # 直接在代码区域展示图片

8、多个Y轴

colors=['#5793f3','#d14a61','#675bba']legend_list=['票房','人次','价格','评价']list1=cnbodfsort['REGION'].tolist()list2=cnbodfsort['PRICE'].tolist()list3=cnbodfsort['PERSONS'].tolist()list4=cnbodfsort['BO'].tolist()list5=cnbodfsort['points'].tolist()c = (    Bar(init_opts=opts.InitOpts(theme=ThemeType.CHALK,width="1600px",height="600px"))    .add_xaxis(list1)    .add_yaxis("评分", list5,yaxis_index=0,category_gap="50%",color=colors[2])    .add_yaxis("票价", list2,yaxis_index=0,category_gap="50%",color=colors[0])    .add_yaxis("人次", list3,yaxis_index=0,category_gap="50%",color=colors[1])        .set_series_opts(        label_opts=opts.LabelOpts(            position="top",            formatter=JsCode(                "function(x){return Number(x.data).toFixed(2);}"            ),        ),        markpoint_opts=opts.MarkPointOpts(            data=[            opts.MarkPointItem(type_="max", name="最大值"),            opts.MarkPointItem(type_="min", name="最小值"),            opts.MarkPointItem(type_="average", name="平均值"),               ]           ),    )        .extend_axis(    yaxis=opts.AxisOpts(        name="票房",        type_="value",        min_=1000,        max_=150000,        interval=10000,        position="right",        axislabel_opts=opts.LabelOpts(formatter="{value} 万")    )    )        .extend_axis(    yaxis=opts.AxisOpts(        name="评价",        type_="value",        min_=0,        max_=11,        interval=1,        position="left",        axislabel_opts=opts.LabelOpts(formatter="{value} 点"),        axisline_opts=opts.AxisLineOpts(            linestyle_opts=opts.LineStyleOpts(color=colors[2])        ),        splitline_opts=opts.SplitLineOpts(            is_show=True,linestyle_opts=opts.LineStyleOpts(opacity=1)        ),        )    )            .set_global_opts(            yaxis_opts=opts.AxisOpts(                type_="value",                name="票价",                min_=10,                max_=70,                position="right",                offset=80,                axisline_opts=opts.AxisLineOpts(                    linestyle_opts=opts.LineStyleOpts(color=colors[0])            ),            axislabel_opts=opts.LabelOpts(formatter="{value} 元"),        ),        tooltip_opts=opts.TooltipOpts(trigger="axis", axis_pointer_type="cross"),        datazoom_opts=opts.DataZoomOpts(orient='vertical'),        toolbox_opts=opts.ToolboxOpts(pos_left='120%'),        legend_opts=opts.LegendOpts(is_show=False),    ) )line = (    Line()    .add_xaxis(xaxis_data=x_data)    .add_yaxis(        series_name="票房",        yaxis_index=1,        y_axis=list4,        label_opts=opts.LabelOpts(is_show=False),    ))c.render_notebook() # 直接在代码区域展示图片

双Y轴:

9、直方图 Bar - Bar_histogram

# Bar - Bar_histogramfrom pyecharts.options.global_options import ThemeTypefrom pyecharts import options as optsfrom pyecharts.charts import Barfrom pyecharts.faker import Fakerc = (    Bar({"theme":ThemeType.DARK})    .add_xaxis(cnboregiongb.index.tolist())    .add_yaxis("数量", cnboregiongb.values.tolist(), category_gap=0, color=Faker.rand_color())    .set_global_opts(title_opts=opts.TitleOpts(title="Bar-直方图")))c.render_notebook()

关于"Python pyecharts怎么绘制条形图"这篇文章的内容就介绍到这里,感谢各位的阅读!相信大家对"Python pyecharts怎么绘制条形图"知识都有一定的了解,大家如果还想学习更多知识,欢迎关注行业资讯频道。

图片 代码 票价 数据 票房 区域 生成 条形 中国电影 可以使 图表 地区 电影 中国 工具 知识 可视化 支持 配置 最大 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 智能科技公司是互联网公司吗 互联网科技与金融科技 广州互联网科技公司 深圳互联网科技公司 科技与互联网发展 金融科技 互联网金融 西安互联网科技 大白互联网科技 欧洲十大科技互联网公司 来此购互联网科技有限公司 互联网还是高科技吗 中国科技创新与世界互联网大会 长沙茂晟互联网科技有限公司 科技赋能视角下互联网保险发展 无锡工业互联网科技有限公司 工业互联网科技成果转化 银川新华互联网科技学校原画 青岛互联网科技园 科技互联网企业在行动 颐高云石互联网科技 猪兼强互联网科技 浩特互联网科技 互联网科技小额贷款 科技伦理 互联网公司 济南和联互联网科技有限公司 上海宁丞科技互联网 东莞新华互联网科技学校 广州新华互联网科技学校电竞方面 广州百诚互联网科技有限公司官网 普陀区互联网教育科技管理办法
0