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()