(代码详解)pyecharts画折线图+多条折线图+参数讲解+美化(有数据)

目录

一、完整代码

二、调参目的介绍

三、代码详解(分段介绍)

第一步:导入库

第二步:导入数据

 第三步:处理数据

第四步:创建一个名为"line"的Line对象

第五步:添加数据

第六步:设置全局选项

(1)折线图标题设置

(2)x轴相关设置

(3)y轴相关设置

补充:

第七步:保存

四、将折线平滑

一、完整代码

#第一步:导入库
import pandas as pd
import pyecharts.options as opts
from pyecharts.charts import Line

#第二步:导入数据
data=pd.read_excel("C:\\Users\\86159\Desktop\\CSDN\\折线图数据.xls")

#第三步:处理数据
x=list(data['专业代码'])#将专业代码列转换成列表形式
y1=list(data['最大值'])#将最大值列转换成列表形式
y2=list(data['最小值'])#将最小值列转换成列表形式


#第四步:用于创建一个名为"line"的Line对象
line=(
    Line(init_opts=opts.InitOpts(width='720px', height='400px', bg_color='white')))
    #要调整背景颜色,可以在init_opts中设置bg_color参数
    #创建了一个Line对象,设置了图表的宽度和高度

#第五步:添加数据:
line.add_xaxis(xaxis_data=x)
line.add_yaxis(series_name="最高分",y_axis=y1,symbol="circle",is_symbol_show=True,itemstyle_opts={"color": "green"},symbol_size=8)
line.add_yaxis(series_name="最低分",y_axis=y2,symbol="pin",is_symbol_show=True,itemstyle_opts={"color": "red"},symbol_size=8)


#第六步:设置全局选项:
# set_global_opts: 这是一个全局设置函数,用于设置图表的各种全局属性。


line.set_global_opts(title_opts=opts.TitleOpts(title="每个专业的最高分最低分"),
                     
                     xaxis_opts=opts.AxisOpts(name="专业代码",name_rotate=0,name_textstyle_opts={"color": "black","fontSize":15},axislabel_opts={"rotate":45,"color":"blue","fontSize":12},is_show =True,is_inverse = False, name_location = 'center',name_gap = 45),
                     yaxis_opts=opts.AxisOpts(name="分数", name_textstyle_opts={"color": "black","fontSize":15},axislabel_opts={"rotate": 45,"color":"blue","fontSize":12},is_show =True,name_location = 'center',name_gap = 35,min_  = 300, split_number = 6)
                     #yaxis_opts=opts.AxisOpts(name="分数", name_textstyle_opts={"color": "red","fontSize":15},axislabel_opts={"rotate": 45,"color":"red","fontSize":15},is_show =True,name_location = 'center',name_gap = 35,min_  = 300, min_interval = 30,max_interval = 60))

#第七步:保存
line.render("折线图.html")
#line.render_notebook()
#渲染图表:使用 `render_notebook()` 方法将图表渲染到Jupyter Notebook中。

二、调参目的介绍

我们画出的简单折线图如下:

其中x、y轴的标题均在坐标轴的一侧,如果想让标题在坐标轴正中间呢?

两条折线图在相近的范围内波动,如果想让纵坐标的值在300-500间,那么两条折线图的变化趋势会更明显,可视化效果会更好一点

(代码详解)pyecharts画折线图+多条折线图+参数讲解+美化(有数据)_第1张图片

 通过调整参数美化,得到了下图:

 与上图相比,格式上有一些改进,呈现方式上有一些优化。

(下边的图您可能觉得不太好看,了解参数怎么设置之后,小伙伴可以画出自己心目中的美图哦。)

(代码详解)pyecharts画折线图+多条折线图+参数讲解+美化(有数据)_第2张图片

三、代码详解(分段介绍)

第一步:导入库

import pandas as pd
import pyecharts.options as opts
from pyecharts.charts import Line

导入pandas库,后续用于导入数据

导入所需的库和模块:`pyecharts.options` 和 `pyecharts.charts`

第二步:导入数据

data=pd.read_excel("C:\\Users\\86159\Desktop\\CSDN\\折线图数据.xls")

(代码详解)pyecharts画折线图+多条折线图+参数讲解+美化(有数据)_第3张图片

 第三步:处理数据

x=list(data['专业代码'])#将专业代码列转换成列表形式
y1=list(data['最大值'])#将最大值列转换成列表形式
y2=list(data['最小值'])#将最小值列转换成列表形式

第四步:创建一个名为"line"的Line对象

line=(Line(init_opts=opts.InitOpts(width='720px', height='400px', bg_color='white')))

要调整背景颜色,可以在init_opts中设置bg_color参数,这里bg_color=white,即背景颜色为白色

设置图表的宽度和高度

第五步:添加数据

line.add_xaxis(xaxis_data=x)

使用 `add_xaxis()` 方法添加横轴数据(专业代码)。

line.add_yaxis(series_name="最高分",y_axis=y1,symbol="circle",
            is_symbol_show=True,is_smooth=True,
            itemstyle_opts={"color": "green"},symbol_size=8)

使用 `add_yaxis()` 方法线添加一组纵轴数据:最高分(y1)

其中的参数:

①series_name="最高分":设置y轴数据的名称,这里命名为"最高分"

②y_axis=y1:设置y轴的数据,这里使用y1作为数据。

③symbol="circle":设置数据点的图标样式为圆形。

symbol可选参数如下:

# ‘circle’: 圆形标记。
# ‘rect’: 矩形标记。
# ‘roundRect’: 带圆角的矩形标记。
# ‘triangle’: 三角形标记。
# ‘diamond’: 菱形标记。
# ‘pin’: 标记形状为图钉。
# ‘arrow’: 标记形状为箭头。

④is_symbol_show=True:设置是否显示图标(刚刚设置的circle图标样式),这里设置为显示。

⑤itemstyle_opts={"color": "green"}":设置此条折线的颜色为绿色

⑥symbol_size=8:设置图标(刚刚设置的circle)的大小为8。

line.add_yaxis(series_name="最低分",y_axis=y2,symbol="pin",
        is_symbol_show=True,is_smooth=True,
        itemstyle_opts={"color": "red"},symbol_size=8)

使用 `add_yaxis()` 方法线添加另一组纵轴数据:最低分(y2)

其他参数介绍同上。

第六步:设置全局选项

line.set_global_opts(title_opts=opts.TitleOpts(title="每个专业的最高分最低分"),
                     xaxis_opts=opts.AxisOpts(name="专业代码",name_rotate=0,
                            name_textstyle_opts={"color": "black","fontSize":15},
                            axislabel_opts={"rotate":45,"color":"blue","fontSize":12},
                            is_show =True,is_inverse = False, 
                            name_location = 'center',name_gap = 45),
                     yaxis_opts=opts.AxisOpts(name="分数", 
                            name_textstyle_opts={"color": "black","fontSize":15},
                            axislabel_opts={"rotate": 45,"color":"blue","fontSize":12},
                            is_show =True,name_location = 'center',name_gap = 35,
                            min_  = 300, split_number = 6)

 set_global_opts: 这是一个全局设置函数,用于设置图表的各种全局属性。

上边这段代码,设置了三大部分的内容:①折线图标题、②x轴相关设置、③y轴相关设置

下边分别对三部分设置进行介绍:

(1)折线图标题设置
title_opts=opts.TitleOpts(title="每个专业的最高分最低分")

设置折线图标题为“每个专业的最高分最低分”

(2)x轴相关设置
xaxis_opts=opts.AxisOpts(name="专业代码",name_rotate=0,
                            name_textstyle_opts={"color": "black","fontSize":15},
                            axislabel_opts={"rotate":45,"color":"blue","fontSize":12},
                            is_show =True,is_inverse = False, 
                            name_location = 'center',name_gap = 45)

上面代码对x轴的相关内容进行了设置

①name="专业代码":设置x轴的名称为“专业代码”

②name_rotate=0:设置x轴名称“专业代码”旋转的角度为0,

                                如果name_rotate=60,那么“专业代码”这四个字就逆时针旋转60°

③name_textstyle_opts={"color": "black","fontSize":15}

     坐标轴名称可以通过name_textstyle_opts参数进行控制,其中可以设置颜色、字体大小等样式

     这里设置x坐标轴名称为黑色,字体大小为15

④axislabel_opts={"rotate":45,"color":"blue","fontSize":12}:

      "rotate":45 说明x轴所有的标签值(刻度值)均逆时针旋转45°

      "color":"blue" 说明x轴所有的标签值(刻度值)颜色为蓝色

      "fontSize":12 说明x轴所有的标签值(刻度值)字体大小为12。

⑤is_show:设置是否显示x轴标签,值为True表示显示,值为False表示不显示。

                       (小伙伴可以改一下这个参数,运行出结果后对比体会一下)

⑥is_inverse:设置x轴标签的方向,值为True表示逆时针方向,值为False表示顺时针方向。默认为Fasle.(小伙伴可以改一下这个参数,运行出结果后对比体会一下)

⑦name_location:设置x轴名称("专业代码")的位置,为'center'表示居中对齐。

      参数可选:'start', 'middle', 'center','end'

⑧name_gap:设置x轴主题标签("专业代码")与 x坐标轴的间距,此处设置为45。

(3)y轴相关设置
yaxis_opts=opts.AxisOpts(name="分数", 
                            name_textstyle_opts={"color": "black","fontSize":15},
                            axislabel_opts={"rotate": 45,"color":"blue","fontSize":12},
                            is_show =True,name_location = 'center',name_gap = 35,
                            min_  = 300, split_number = 6)

 上面代码对y轴的相关内容进行了设置

其中很多参数与上面对x轴设置时的参数相同,下面介绍一下刚才没有涉及到的参数

 ①`min_ = 300`:设置y轴的最小值为300。(坐标轴刻度最小值)

      也就是说y轴的值并不是从0开始了,而是从300开始。

      同理,也可以设置max_参数(坐标轴刻度最大值),控制y轴的最大值

 ②`split_number = 6`:设置y轴分割线数量为6。

      这个意思就是将y轴的刻度分成了6组,

      假如:300、320、340、360、380、400、420,y轴的最小值的300,最大值为420,组间距为20,这样y轴就被分割成了6部分

补充:

这里再补充上面没有涉及到的两个参数,即min_interval 和max_interval 

min_interval :坐标轴最小间隔大小

max_interval:最标轴最大间隔大小

第七步:保存

line.render("折线图.html")

#如果要保存到固定路径,就选择下边的代码
#line.render("C:\\Users\\86159\Desktop\\CSDN\\折线图.html")

将画出来的图保存为html网页格式,html名称为折线图

line.render_notebook()

 如果小伙伴你使用的是jupyter notebook,可以利用上面代码渲染图表:使用 `render_notebook()` 方法将图表渲染到Jupyter Notebook中,可以直接再jupyter中输出查看。

四、将折线平滑

    通过上边的代码,我们得到了如下折线图:

(代码详解)pyecharts画折线图+多条折线图+参数讲解+美化(有数据)_第4张图片

           如果想要将折线平滑,怎么实现呢?请看下边

(代码详解)pyecharts画折线图+多条折线图+参数讲解+美化(有数据)_第5张图片

line.add_yaxis(series_name="最高分",y_axis=y1,symbol="circle",is_symbol_show=True,is_smooth=True,itemstyle_opts={"color": "green"},symbol_size=8)
line.add_yaxis(series_name="最低分",y_axis=y2,symbol="pin",is_symbol_show=True,is_smooth=True,itemstyle_opts={"color": "red"},symbol_size=8)

         第五步添加y轴数据时,只要加上is_smooth=True,这个参数,即可实现。

你可能感兴趣的:(python,信息可视化,数据分析,机器学习,数据挖掘,echarts)