pyecharts--柱状图(包含标题、图例、X轴、Y轴、数据标签的设置)

本文介绍了如何使用pyecharts创建柱状图以展示不同类别的人群年龄分布,并通过snapshot-selenium将其导出为PNG格式。内容包括柱状图在数据可视化中的适用场景,以及pyecharts的使用步骤。

根据目的并运用常识选择最有效的图形来传达要点。

1 如果要说明空间关系,则地图或照片可能是最佳选择。
2 如果要说明比例,饼状图或条形图是首选。
3 如果要说明两个变量之间的关系,可尝试折线图或散点图。

柱状图/条形图

将一群人按一定标准分为A,B,C,D四种类型,作图展示各类型下人群的年龄分布。

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

columns = ["A","B","C","D"]
data1 = [26.86,15.56,10.62,14.07]
data2 = [36.87,28.61,25.86,41.13]
data3 = [24.38,28.58,30.32,22.74]
data4 = [10.15,21.31,26.64,18.99]
data5 = [1.74,5.95,6.57,3.07]

bar=(
    Bar(
#         init_opts=opts.InitOpts(theme=ThemeType.VINTAGE)  # 设置主题
#         width='800px',  # 指定图片宽度
#         height='400px',  # 指定图片高度
    )
    .add_xaxis(columns)
    .add_yaxis("≤24", data1)
    .add_yaxis("25-34", data2)
    .add_yaxis("35-49", data3)
    .add_yaxis("50-64", data4)
    .add_yaxis("≥65", data5)
#         .set_colors(["blue","red","black","green","orange"])  # 柱子的颜色
#         .reversal_axis()   # xy轴交换
    .set_global_opts(
# #             标题设置
#             title_opts=opts.TitleOpts(title='title',
#                                       subtitle='subtitle',
# #             标题文字格式
#                                       title_textstyle_opts=opts.TextStyleOpts(color='red',
#                                                                               font_size=12,
#                                                                               font_family='Times New Roman',
#                                                                               font_weight='bold',
#
# #             副标题文字格式                                                                              ),
#                                       subtitle_textstyle_opts=opts.TextStyleOpts(color='blue',
#                                                                                  font_size=12,
#                                                                                  font_family='Times New Roman',
#                                                                                  font_weight='bold',
#                                                                                 ),
#                                      )
#             图例设置
        legend_opts=opts.LegendOpts(
            pos_left='right',    # 图例放置的位置,分上下左右,可用左右中表示,也可用百分比表示
            pos_top='center',
            orient='vertical',   # horizontal、vertical #图例放置的方式 横着放or竖着放
            textstyle_opts=opts.TextStyleOpts(
                font_size=12,
                font_family='Times New Roman',
            ),
        ),
        xaxis_opts=opts.AxisOpts(
            name='Type',
            name_location='middle',
            name_gap=20,
#                 x轴名称的格式配置
            name_textstyle_opts=opts.TextStyleOpts(
                font_family= 'Times New Roman',
                font_size=14,
            ),
#                 坐标轴刻度配置项
            axistick_opts=opts.AxisTickOpts(
#                     is_show=False,  # 是否显示
                is_inside=True,  # 刻度线是否在内侧
            ),
#                 坐标轴线的配置
            axisline_opts=opts.AxisLineOpts(
                linestyle_opts=opts.LineStyleOpts(
                    width=1,
                    color='black',
                )
            ),
#                 坐标轴标签的配置
            axislabel_opts=opts.LabelOpts(
                font_size=12,
                font_family='Times New Roman',
            ),
        ),
        yaxis_opts=opts.AxisOpts(
            name='Proportion(%)',
            name_location='middle',
            name_gap=30,
            name_textstyle_opts=opts.TextStyleOpts(
                font_family= 'Times New Roman',
                font_size=14,
                color='black',
#                     font_weight='bolder',
            ),
            axistick_opts=opts.AxisTickOpts(
#                     is_show=False,  # 是否显示
                is_inside=True,  # 刻度线是否在内侧
            ),
            axislabel_opts=opts.LabelOpts(
                font_size=12,
                font_family='Times New Roman',
            ),
        ),
#             显示工具栏
        toolbox_opts=opts.ToolboxOpts(is_show=True),
    )
    .set_series_opts(
        label_opts=opts.LabelOpts(
#             position="Top",
            font_size=12,
            font_family='Times New Roman',
        )
    )
)

bar.render_notebook()

输出结果
在这里插入图片描述
通过snapshot-selenium将pyecharts做出的图导出为png格式
安装

pip install snapshot_selenium

调用

from pyecharts.render import make_snapshot
from snapshot_selenium import snapshot

make_snapshot(snapshot, bar.render(), "D:\\test.png")
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值