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

您所在的位置:网站首页 三角梅品种大全大图图片名称 (代码详解)pyecharts画折线图+多条折线图+参数讲解+美化(有数据)

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

2024-07-17 10:49| 来源: 网络整理| 查看: 265

目录

一、完整代码

二、调参目的介绍

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

第一步:导入库

第二步:导入数据

 第三步:处理数据

第四步:创建一个名为"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间,那么两条折线图的变化趋势会更明显,可视化效果会更好一点

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

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

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

三、代码详解(分段介绍) 第一步:导入库 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")

 第三步:处理数据 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中输出查看。

四、将折线平滑

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

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

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,这个参数,即可实现。



【本文地址】


今日新闻


推荐新闻


    CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3