Line(折线/面积图)
折线图是用折线将各个数据点标志连接起来的图表,用于展现数据的变化趋势。
Line.add()
方法签名
add(name, x_axis, y_axis,
is_symbol_show=True,
is_smooth=False,
is_stack=False,
is_step=False, **kwargs)
name -> str
图例名称
x_axis -> list
x 坐标轴数据
y_axis -> list
y 坐标轴数据
is_symbol_show -> bool
是否显示标记图形,默认为 True
is_smooth -> bool
是否平滑曲线显示,默认为 False
is_stack -> bool
数据堆叠,同个类目轴上系列配置相同的 stack 值可以堆叠放置。默认为 False
is_step -> bool/str
是否是阶梯线图。可以设置为 True 显示成阶梯线图。默认为 False
也支持设置成'start', 'middle', 'end'分别配置在当前点,当前点与下个点的中间下个点拐弯。
Line.add(name, x_axis, y_axis,
is_symbol_show=True,
is_smooth=False, is_stack=False,
is_step=False,
is_fill=False,
**kwargs
)
name –> str : 图例名称
x_axis –> list : x 坐标轴数据
y_axis –> list : Y 坐标轴数据
is_symbol_show –> bool : 是否显示标记图形, 默认为 True
is_smooth –> bool : 是否显示平滑曲线, 默认为 False
is_stack –> bool : 数据堆叠, 同个类目轴上系列配置相同的 stack 值可以堆叠放置, 默认为 False.
is_step –> bool/str : 是否是阶梯线图. 默认为 False. 也支持设置成 “start”, “middle”, “end” 分别配置在当前点, 当前点与下个点的中间, 下个点的拐弯.
is_fill –> bool : 是否填充曲线所绘制面积, 默认为 False.
mark_point –> list : 标记点, 有 min, max, average 可选
mark_line –> list : 标记线, 有 min, max, average 可选.
mark_point_symbol –> str : 标记点图形, 默认为 pin, 有 circle, rect, roundRect, triangle, diamond, pin, arrow 可选.
mark_point_symbolsize –> int : 标记点图形大小, 默认为 50
mark_point_textcolor –> str : 标记点字体颜色, 默认为 #fff.
area_color –> str : 填充区域颜色.
area_opacity –> float : 填充区域透明度
from pyecharts import Line
attr = ["衬衫", "羊毛衫", "雪纺衫", "裤子", "高跟鞋", "袜子"]
v1 = [5, 20, 36, 10, 10, 100]
v2 = [55, 60, 16, 20, 15, 80]
line = Line("折线图示例")
line.add("商家A", attr, v1, mark_point=["average"])
line.add("商家B", attr, v2, is_smooth=True, mark_line=["max", "average"])
line.render()
标记点其他配置
line = Line("折线图示例")
line.add(
"商家A",
attr,
v1,
mark_point=["average", "max", "min"],
mark_point_symbol="diamond",
mark_point_textcolor="#40ff27",
)
line.add(
"商家B",
attr,
v2,
mark_point=["average", "max", "min"],
mark_point_symbol="arrow",
mark_point_symbolsize=40,
)
line.render()
line = Line("折线图示例")
line.add(
"商家A",
attr,
v1,
mark_point=["average", {"coord": ["裤子", 10], "name": "这是我想要的第一个标记点"}],
)
line.add(
"商家B",
attr,
v2,
is_smooth=True,
mark_point=[{"coord": ["袜子", 80], "name": "这是我想要的第二个标记点"}],
)
line.render()
堆叠折线图
line = Line("折线图-数据堆叠示例")
line.add("商家A", attr, v1, is_stack=True, is_label_show=True)
line.add("商家B", attr, v2, is_stack=True, is_label_show=True)
line.render()
折线图-阶梯图示例
line = Line("折线图-阶梯图示例")
line.add("商家A", attr, v1, is_step=True, is_label_show=True)
line.render()
使用 area_opacity
: area_opacity
用于指定区域透明度,0 为完全不透明(默认),1 为完全透明。
line = Line("折线图-面积图示例")
line.add(
"商家A",
attr,
v1,
line_opacity=0.2,
area_opacity=0.4,
symbol=None,
)
line.add(
"商家B",
attr,
v2,
is_fill=True,
area_color="#000",
area_opacity=0.3,
is_smooth=True,
)
line.render()
area_opacity -> float
填充区域透明度
area_color -> str
填充区域颜色
Note: 可配置 lineStyle 参数
Note: 可以通过 label_color 来设置线条颜色,如 ['#eee', '#000'],所有的图表类型的图例颜色都可通过 label_color 来修改。
如果是对数数据,推荐使用 yaxis_type
参数来设置 y 坐标轴为对数轴
import math, random
line = Line("折线图示例")
line.add("商家A", attr, [math.log10(random.randint(1, 99999)) for _ in range(6)])
line.add(
"商家B",
attr,
[math.log10(random.randint(1, 99999999)) for _ in range(6)],
yaxis_type="log",
)
line.render()
某地最低温和最高气温折线图 yaxis_formatter
Line3D(3D 折线图)
Line3D.add()
方法签名
add(name, data,
grid3d_opacity=1, **kwargs)
name -> str
图例名称
data -> [list], 包含列表的列表
数据项,数据中,每一行是一个『数据项』,每一列属于一个『维度』
grid3d_opacity -> int
3D 笛卡尔坐标系组的透明度(线的透明度),默认为 1,完全不透明。
画个弹簧
from pyecharts import Line3D
import math
_data = []
for t in range(0, 25000):
_t = t / 1000
x = (1 + 0.25 * math.cos(75 * _t)) * math.cos(_t)
y = (1 + 0.25 * math.cos(75 * _t)) * math.sin(_t)
z = _t + 2.0 * math.sin(75 * _t)
_data.append([x, y, z])
range_color = [
'#313695', '#4575b4', '#74add1', '#abd9e9', '#e0f3f8', '#ffffbf',
'#fee090', '#fdae61', '#f46d43', '#d73027', '#a50026']
line3d = Line3D("3D 折线图示例", width=1200, height=600)
line3d.add(
"",
_data,
is_visualmap=True,
visual_range_color=range_color,
visual_range=[0, 30],
grid3d_rotate_sensitivity=5,
)
line3d.render()