Pyecharts系列课程04——折线图/面积图(Line)
本章我们学习在Pyecharts中折线图(Line)的使用。折线图通用应用于数据的趋势分析。
折线图
我们现在有两组数据,x_data
是2024年的月份,y_data
为对应张三甲每个月的用电量。
# 家庭每月用电量趋势
x_data = ["1月", "2月", "3月", "4月", "5月", "6月", "7月", "8月", "9月", "10月", "11月", "12月"
]
y_data = [120, 140, 118, 98, 91, 87, 152, 214, 198, 154, 121, 108]
在Pyecharts中绘制直方图,首先我们需要引入我们需要的图表,可以通过如下代码:
from pyecharts.charts import Line
在引入之后我们需要做的便是新建一个图表实例,然后将我们的x_data
,y_data
添加至图表中,在直角坐标系图表中,都是采用add_xaxis
,add_yaxis
两个方法分别来添加数据,这点与之前的直方图一致。
在add_yaxis
中有两个必传的参数,一个是y_axis
是我们要传的数据,另一个参数series_name
为系列名称。
from pyecharts.charts import Line# 新建一个图表命名为chart
chart = Line()
# 添加数据
chart.add_xaxis(x_data)
chart.add_yaxis(series_name="用电量", y_axis=y_data)
在Pyecharts中都提供了默认配置,在不做任何配置的情况下,我们的图表就已经完成了,便可以通过.render_notebook()将图表渲染至我们的notebook中了。
from pyecharts.charts import Line# 家庭每月用电量趋势
x_data = ["1月", "2月", "3月", "4月", "5月", "6月", "7月", "8月", "9月", "10月", "11月", "12月"
]
y_data = [120, 140, 118, 98, 91, 87, 152, 214, 198, 154, 121, 108]
# 新建一个图表命名为chartchart = Line()
# 添加数据
chart.add_xaxis(x_data)
chart.add_yaxis(series_name="用电量", y_axis=y_data)chart.render_notebook()
效果如下:
*如果是在非notebool的环境中,我们需要将.render_notebook()
换成.render()
。
面积图
- 在Pyecharts中没有单独的面积图模块,其实面积图就是在折线图的基础上加上颜色的填充。
- 我们还是在之前的代码基础上进行编辑。在
add_yaxis()
方法中有一个参数areastyle_opts
,即配置区域样式效果的,默认效果是设置的透明度为0,我们只需设置为大于0小于等于1的值即可。
from pyecharts.charts import Line
import pyecharts.options as opts# 家庭每月用电量趋势
x_data = ["1月", "2月", "3月", "4月", "5月", "6月", "7月", "8月", "9月", "10月", "11月", "12月"
]
y_data = [120, 140, 118, 98, 91, 87, 152, 214, 198, 154, 121, 108]
# 新建一个图表命名为chartchart = Line()
# 添加数据
chart.add_xaxis(x_data)
chart.add_yaxis(series_name="用电量",y_axis=y_data,areastyle_opts=opts.AreaStyleOpts(opacity=0.6))chart.render_notebook()
常用配置
线条样式
颜色/线宽
通过参数linestyle_opts
进行线条样式配置,颜色/线宽可通过LineStyleOpts
中的color
, width
进行配置,具体参考如下代码;
from pyecharts.charts import Line
import pyecharts.options as opts# 家庭每月用电量趋势
x_data = ["1月", "2月", "3月", "4月", "5月", "6月", "7月", "8月", "9月", "10月", "11月", "12月"
]
y_data = [120, 140, 118, 98, 91, 87, 152, 214, 198, 154, 121, 108]chart = Line()chart.add_xaxis(x_data)
chart.add_yaxis("用电量",y_data,areastyle_opts=opts.AreaStyleOpts(color='red', opacity=0.3),linestyle_opts=opts.LineStyleOpts(width=2, color='red'))chart.render_notebook()
这里需要注意一点,通过linestyle_opts
修改的是线条颜色,通过上方图片我们也能看到,标记点还是蓝色,如果我们需要修改标记点的颜色的需要通过参数color
:
from pyecharts.charts import Line
import pyecharts.options as opts# 家庭每月用电量趋势
x_data = ["1月", "2月", "3月", "4月", "5月", "6月", "7月", "8月", "9月", "10月", "11月", "12月"
]
y_data = [120, 140, 118, 98, 91, 87, 152, 214, 198, 154, 121, 108]chart = Line()chart.add_xaxis(x_data)
chart.add_yaxis("用电量",y_data,color='red',areastyle_opts=opts.AreaStyleOpts(color='red', opacity=0.3),linestyle_opts=opts.LineStyleOpts(width=2, color='red'))chart.render_notebook()
效果如下:
平滑曲线效果
通过is_smooth=True
进行设置;
from pyecharts.charts import Line
import pyecharts.options as opts# 家庭每月用电量趋势
x_data = ["1月", "2月", "3月", "4月", "5月", "6月", "7月", "8月", "9月", "10月", "11月", "12月"
]
y_data = [120, 140, 118, 98, 91, 87, 152, 214, 198, 154, 121, 108]chart = Line()chart.add_xaxis(x_data)
chart.add_yaxis("用电量",y_data,color='red',is_smooth=True,areastyle_opts=opts.AreaStyleOpts(color='red', opacity=0.3),linestyle_opts=opts.LineStyleOpts(width=2, color='red'))chart.render_notebook()
效果如下:
线形
可以设置虚线实线等样式,同样还是通过linestyle_opts
进行配置,支持的参数值有 solid
, dashed
, dotted
from pyecharts.charts import Line
import pyecharts.options as opts# 家庭每月用电量趋势
x_data = ["1月", "2月", "3月", "4月", "5月", "6月", "7月", "8月", "9月", "10月", "11月", "12月"
]
y_data_1 = [120, 140, 118, 98, 91, 87, 152, 214, 198, 154, 121, 108]
y_data_2 = [230, 139, 128, 182, 151, 187, 252, 304, 208, 124, 101, 88]chart = Line()chart.add_xaxis(x_data)
chart.add_yaxis("张三家",y_data_1,is_smooth=True,linestyle_opts=opts.LineStyleOpts(type_='dotted'))
chart.add_yaxis("李四家",y_data_2,is_smooth=True,linestyle_opts=opts.LineStyleOpts(type_='dashed'))chart.render_notebook()
效果如下:
标记图形
折线图除了线条的样式可以配置,标记点样式也可以进行调整。
颜色/大小/形状
- symbol:标记的图形,可选参数值: ‘circle’, ‘rect’, ‘roundRect’, ‘triangle’, ‘diamond’, ‘pin’, ‘arrow’, ‘none’
- symbol_size:标记图形的大小;
- color:系列颜色,线条颜色未设置的话会同时设置图形和线条的颜色,与柱形图一样,也可以通过
itemstyle_opts
进行颜色配置;
from pyecharts.charts import Line
import pyecharts.options as opts# 家庭每月用电量趋势
x_data = ["1月", "2月", "3月", "4月", "5月", "6月", "7月", "8月", "9月", "10月", "11月", "12月"
]
y_data_1 = [120, 140, 118, 98, 91, 87, 152, 214, 198, 154, 121, 108]
y_data_2 = [230, 139, 128, 182, 151, 187, 252, 304, 208, 124, 101, 88]chart = Line()chart.add_xaxis(x_data)
chart.add_yaxis("张三家",y_data_1,is_smooth=True,# 颜色/大小/形状symbol='roundRect',symbol_size=20,color='green',linestyle_opts=opts.LineStyleOpts(type_='dotted'))
chart.add_yaxis("李四家",y_data_2,is_smooth=True,symbol='triangle',symbol_size=20,color='orange',linestyle_opts=opts.LineStyleOpts(type_='dashed'))chart.render_notebook()
效果如下: