文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

Python pyecharts怎么绘制条形图

2023-06-29 19:45

关注

这篇文章主要介绍了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}) # 第二种

Python pyecharts怎么绘制条形图

Python pyecharts怎么绘制条形图

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() # 直接在代码区域展示图片

Python pyecharts怎么绘制条形图

3、样例数据 Faker.choose()

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

.add_xaxis(Faker.choose())

Python pyecharts怎么绘制条形图

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() # 直接在代码区域展示图片

Python pyecharts怎么绘制条形图

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

Python pyecharts怎么绘制条形图

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() # 直接在代码区域展示图片

Python pyecharts怎么绘制条形图

Python pyecharts怎么绘制条形图

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() # 直接在代码区域展示图片

Python pyecharts怎么绘制条形图

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轴:

Python pyecharts怎么绘制条形图

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

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯