pyecharts圖表庫學習:Line(折線/面積圖)

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_opacityarea_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()
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章