Bootstrap

Python可视化绘图及大图展示+代码介绍

一、前言

        在刚开始学习python可视化编程的时候,我觉得一个图形,并且没有变化的图形是不够的,过于简单,不美观。所以在后面的学习过程中,我就开始注重学习如何改变我的图表,使它富有变化性,当然这也是学校布置的一个作业,也幸运的在班级里获得了第一。

        在上一篇博客的最后留了一张python可视化大图展示的照片,这一篇也会有所涉及哦!

上一篇icon-default.png?t=N7T8https://blog.csdn.net/2301_80044751/article/details/140396290?spm=1001.2014.3001.5501

       这里是pyecharts的官网及其介绍,里面也有其它的图形可供参考icon-default.png?t=N7T8https://pyecharts.org/#/zh-cn/global_options?id=titleopts%EF%BC%9A%E6%A0%87%E9%A2%98%E9%85%8D%E7%BD%AE%E9%A1%B9 这个也是哦icon-default.png?t=N7T8https://05x-docs.pyecharts.org/#/zh-cn/

那么接下来就来看看如何编写我们的代码啦!(个人理解,如有错误,请大佬点拨)

二、折线图加柱状图的叠加图标

bfdb7edd8abc44359ea0cd882f466488.png

这是我们的最终效果图!

        在这里面我们有两个图,一个是柱状图,一个是折线图,并且设置了主题颜色还有根据数据大小而改变的柱条颜色,在左右两边有柱状图,并且在每一个节点上都标有数据,同时在底下我们可以看到两个图形的标题。

        上面所说的所有东西都可以我们配置,并且可以更改设置!

        首先,我们先看看效果:

python可视化信息展示

        可以看到我们的图标是可以根据我们的一些需求来配置的,并且可以变化!接下来我们解释写的代码!

import pyecharts.options as opts
from pyecharts.charts import Bar, Line
from pyecharts.options import ToolboxOpts, VisualMapOpts
from pyecharts.globals import ThemeType

x_data = ['2016', '2017', '2018', '2019', '2020', '2021', '2022']

        这一部分是我们所引用的库函数。

bar = (
    Bar(init_opts=opts.InitOpts(theme=ThemeType.PURPLE_PASSION))
    .add_xaxis(xaxis_data=x_data)
    .add_yaxis(
        series_name="社会物流总额(亿万元)",  # 此处为设置图例配置项的名称
        y_axis=[220, 230, 245, 275, 285, 305, 340, 353],
        label_opts=opts.LabelOpts(is_show=True),  # 此处将标签配置项隐藏
        z=0  # 因为折线图会被柱状图遮挡,所以此处把柱状图置底
    )

        在代码里面,大部分都有解释代码,大家可以好好看看!

        这一部分是我们构建柱状图对象,这里有一个我们需要着重注意的地方,就是在我们构建对象的时候所写的代码

Bar(init_opts=opts.InitOpts(theme=ThemeType.PURPLE_PASSION))

       这里是我们设置背景的地方,我们的图标在一开始设置的时候,底色是白色的,有些时候不能够满足我们的需要,因此我们可以修改我们的主题。

        这个是我们所可以使用的主题,大致如上!

.extend_axis(
        yaxis=opts.AxisOpts(
            type_="value",
            min_=0,  # 刻度标签的最小值
            max_=14,  # 刻度标签的最大值
            interval=2,  # 步长
            axislabel_opts=opts.LabelOpts(formatter="{value} %"),  # 设置刻度标签的单位
        )
    )

        这是我们的右侧坐标轴设置,如果想要看其它的内置函数,可以右键进入函数查看代码!,接下来就是我们的全局设置选项。

 .set_global_opts(
        tooltip_opts=opts.
        TooltipOpts(
            is_show=True,
            trigger="axis",
            axis_pointer_type="cross",

        ),  # 设置提示框配置项,触发类型为坐标轴类型,指示器类型为"cross"

        xaxis_opts=opts.AxisOpts(
            type_="category",
            axispointer_opts=opts.AxisPointerOpts(
                is_show=True,
                type_="shadow"
            ),
        ),  # 设置x轴配置项为类目轴,适用于离散的类目数据
        yaxis_opts=opts.AxisOpts(
            type_="value",
            min_=0,  # 刻度标签的最大值
            max_=400,  # 刻度标签的最小值
            interval=50,  # 步长
            axistick_opts=opts.AxisTickOpts(is_show=True),  # 显示坐标轴刻度
            splitline_opts=opts.SplitLineOpts(is_show=True),  # 显示分割线
        ),

        这两个是对x轴和y轴的一些配置,这里说一点比较重要的理解方法:很多我们所看到的代码都是它作用的简写,或者就是那个单词,可以去搜搜单词的意思,然后就可以知道它的作用,这种习惯也是我们所要学习的方式。

        接下来就是一些其它配置

title_opts=opts.TitleOpts(
            is_show=True,
            title="2015-2022年中国社会物流总额变化情况",
            pos_left="center"
        ),
        # 设置标题并将其居中
        toolbox_opts=ToolboxOpts(is_show=True),
        legend_opts=opts.LegendOpts(
            pos_right="center",
            pos_bottom="bottom"
        ),  # 设置图例配置项,并将其放在底部
        visualmap_opts=VisualMapOpts(
            is_show=True,
            min_=200,
            max_=400
        )
    )
)

        到这里我们就完成了!我们的图形就好了,当然这里说的是我们的柱状图,接下里我们就可以看我们的折线图了。

        

line = (
    Line()
    .add_xaxis(xaxis_data=x_data)
    .add_yaxis(
        series_name="增速(%)",
        yaxis_index=1,
        y_axis=[0, 4.5, 6.5, 12.2, 3.6, 0.7, 11.4, 3.7],
        label_opts=opts.LabelOpts(is_show=True),
        symbol="triangle",
        symbol_size=20,
    )
    .set_series_opts(
        linestyle_opts=opts.LineStyleOpts(width=4),
        visualmap_opts=VisualMapOpts(
            is_show=False,
            max_=20
        )
    )   # 设置线条宽度为4
)

我们的很多图形和代码其实有很多的共同之处,这里就不在继续解释这一部分代码了。

很重要的一点:当你觉得这个东西不明白是什么作用的时候,你就把它改了或者去掉,实践出真知

三、可视化大图展示

        在这一部分我们介绍一个Page库,里面可以将我们图标拼接起来,通过组合来展示一张好看的图形。

就像这种。

def page_draggable_layout():
    page = Page(layout=Page.DraggablePageLayout)

    bar = bar_3d()
    bar.chart_id = "wo_xi_huan_liu_yu_fan"
    pie = circle()
    pie.chart_id = "yu_fan_zhen_hao_kan"
    bar_line = LXH()
    bar_line.chart_id = "wo_xihuan_yufan"
    bar_1 = GLMD()
    bar_1.chart_id = "yu_fan_zhen_haokan"
    bar_2 = TLYY()
    bar_2.chart_id = "xiao_wang_ba"
    liquid = LLL()
    liquid.chart_id = "I_love_liu_yu_fan"
    # table = table_base()
    # table.chart_id = "I_love_liu_yu_fan"
    # 每加一张图就在这里把要加的那张图的名字放在这,格式参照上述
    page.add(

        pie,
        bar,
        bar_line,
        bar_1,
        bar_2,

        liquid,

    )
    page.render("all_chart.html")

        上面就是我们的代码,也是很重要的一部分,把你的每一个图形都在Page里导入。你想叫它什么都行咯!

        这里要介绍的东西不是很多,就把图形拼接上去,就不再赘述了。

四、折线图加柱状图代码

import pyecharts.options as opts
from pyecharts.charts import Bar, Line
from pyecharts.options import ToolboxOpts, VisualMapOpts
from pyecharts.globals import ThemeType

x_data = ['2016', '2017', '2018', '2019', '2020', '2021', '2022']

bar = (
    Bar(init_opts=opts.InitOpts(theme=ThemeType.PURPLE_PASSION))
    .add_xaxis(xaxis_data=x_data)
    .add_yaxis(
        series_name="社会物流总额(亿万元)",  # 此处为设置图例配置项的名称
        y_axis=[220, 230, 245, 275, 285, 305, 340, 353],
        label_opts=opts.LabelOpts(is_show=True),  # 此处将标签配置项隐藏
        z=0  # 因为折线图会被柱状图遮挡,所以此处把柱状图置底
    )

    .extend_axis(
        yaxis=opts.AxisOpts(
            type_="value",
            min_=0,  # 刻度标签的最小值
            max_=14,  # 刻度标签的最大值
            interval=2,  # 步长
            axislabel_opts=opts.LabelOpts(formatter="{value} %"),  # 设置刻度标签的单位
        )
    )

    .set_global_opts(
        tooltip_opts=opts.
        TooltipOpts(
            is_show=True,
            trigger="axis",
            axis_pointer_type="cross",

        ),  # 设置提示框配置项,触发类型为坐标轴类型,指示器类型为"cross"

        xaxis_opts=opts.AxisOpts(
            type_="category",
            axispointer_opts=opts.AxisPointerOpts(
                is_show=True,
                type_="shadow"
            ),
        ),  # 设置x轴配置项为类目轴,适用于离散的类目数据
        yaxis_opts=opts.AxisOpts(
            type_="value",
            min_=0,  # 刻度标签的最大值
            max_=400,  # 刻度标签的最小值
            interval=50,  # 步长
            axistick_opts=opts.AxisTickOpts(is_show=True),  # 显示坐标轴刻度
            splitline_opts=opts.SplitLineOpts(is_show=True),  # 显示分割线
        ),
        title_opts=opts.TitleOpts(
            is_show=True,
            title="2015-2022年中国社会物流总额变化情况",
            pos_left="center"
        ),
        # 设置标题并将其居中
        toolbox_opts=ToolboxOpts(is_show=True),
        legend_opts=opts.LegendOpts(
            pos_right="center",
            pos_bottom="bottom"
        ),  # 设置图例配置项,并将其放在底部
        visualmap_opts=VisualMapOpts(
            is_show=True,
            min_=200,
            max_=400
        )
    )
)

line = (
    Line()
    .add_xaxis(xaxis_data=x_data)
    .add_yaxis(
        series_name="增速(%)",
        yaxis_index=1,
        y_axis=[0, 4.5, 6.5, 12.2, 3.6, 0.7, 11.4, 3.7],
        label_opts=opts.LabelOpts(is_show=True),
        symbol="triangle",
        symbol_size=20,
    )
    .set_series_opts(
        linestyle_opts=opts.LineStyleOpts(width=4),
        visualmap_opts=VisualMapOpts(
            is_show=False,
            max_=20
        )
    )   # 设置线条宽度为4
)

bar.overlap(line).render("社会物流总额.html")

第二个图的代码太长了,就不列举出来咯!

大家觉得有用的话,就点点赞,如果觉得有啥问题,欢迎在评论区交流!

悦读

道可道,非常道;名可名,非常名。 无名,天地之始,有名,万物之母。 故常无欲,以观其妙,常有欲,以观其徼。 此两者,同出而异名,同谓之玄,玄之又玄,众妙之门。

;