先看對y軸的一些屬性設置
def add_yaxis(
# 系列名稱,用於 tooltip 的顯示,legend 的圖例篩選。
series_name: str,
# 系列數據
y_axis: Sequence,
# 是否選中圖例
is_selected: bool = True,
# 使用的 x 軸的 index,在單個圖表實例中存在多個 x 軸的時候有用。
xaxis_index: Optional[Numeric] = None,
# 使用的 y 軸的 index,在單個圖表實例中存在多個 y 軸的時候有用。
yaxis_index: Optional[Numeric] = None,
# 系列 label 顏色
color: Optional[str] = None,
# 標記的圖形。
# ECharts 提供的標記類型包括 'circle', 'rect', 'roundRect', 'triangle',
# 'diamond', 'pin', 'arrow', 'none'
# 可以通過 'image://url' 設置爲圖片,其中 URL 爲圖片的鏈接,或者 dataURI。
symbol: Optional[str] = None,
# 標記的大小,可以設置成諸如 10 這樣單一的數字,也可以用數組分開表示寬和高,
# 例如 [20, 10] 表示標記寬爲 20,高爲 10。
symbol_size: Numeric = 10,
# 標記的旋轉角度。注意在 markLine 中當 symbol 爲 'arrow' 時會忽略 symbolRotate 強制設置爲切線的角度。
symbol_rotate: types.Optional[types.Numeric] = None,
# 標籤配置項,參考 `series_options.LabelOpts`
label_opts: Union[opts.LabelOpts, dict] = opts.LabelOpts(position="right"),
# 標記點配置項,參考 `series_options.MarkPointOpts`
markpoint_opts: Union[opts.MarkPointOpts, dict, None] = None,
# 標記線配置項,參考 `series_options.MarkLineOpts`
markline_opts: Union[opts.MarkLineOpts, dict, None] = None,
# 提示框組件配置項,參考 `series_options.TooltipOpts`
tooltip_opts: Union[opts.TooltipOpts, dict, None] = None,
# 圖元樣式配置項,參考 `series_options.ItemStyleOpts`
itemstyle_opts: Union[opts.ItemStyleOpts, dict, None] = None,
# 可以定義 data 的哪個維度被編碼成什麼。
encode: types.Union[types.JSFunc, dict, None] = None,
)
1.顯示分割線(網格線)
from pyecharts import options as opts
from pyecharts.charts import Scatter
from pyecharts.faker import Faker
c = (
Scatter()
.add_xaxis(Faker.choose())
.add_yaxis("商家A", Faker.values())
.set_global_opts(
title_opts=opts.TitleOpts(title="Scatter-顯示分割線"),
xaxis_opts=opts.AxisOpts(splitline_opts=opts.SplitLineOpts(is_show=True)),
yaxis_opts=opts.AxisOpts(splitline_opts=opts.SplitLineOpts(is_show=True)),
)
.render("C:/scatter_splitline.html")
)
2.Basic_scatter_chart
import pyecharts.options as opts
from pyecharts.charts import Scatter
# X,Y數據
data = [
[10.0, 8.04],
[8.0, 6.95],
[13.0, 7.58],
[9.0, 8.81],
[11.0, 8.33],
[14.0, 9.96],
[6.0, 7.24],
[4.0, 4.26],
[12.0, 10.84],
[7.0, 4.82],
[5.0, 5.68],
]
# 對X數據排序
data.sort(key=lambda x: x[0])
x_data = [d[0] for d in data] # x數據
y_data = [d[1] for d in data] # y數據
c = (
#散點圖
#初始化
Scatter(init_opts=opts.InitOpts(width="900px", height="600px"))
.add_xaxis(xaxis_data=x_data)
.add_yaxis(
# 系列名稱
series_name="",
# 系列數據
y_axis=y_data,
# 標記的大小
symbol_size=20,
# 標記的圖形
symbol = None,
# 是否選中圖例
is_selected = True,
# 系列 label 顏色
color = '#00CCFF',
# 標籤配置項
label_opts=opts.LabelOpts(is_show=False), #不顯示標籤
)
#系統配置項
.set_series_opts()
#全局配置項
.set_global_opts(
#x軸配置
xaxis_opts=opts.AxisOpts(
name ='x軸',
name_location = 'center',
name_gap = 15,
# 座標軸類型 'value': 數值軸
type_="value",
# 分割線配置項
splitline_opts=opts.SplitLineOpts(is_show=True) #顯示分割線
),
#y軸配置
yaxis_opts=opts.AxisOpts(
name ='y軸',
# 座標軸類型 'value': 數值軸
type_="value",
# 座標軸刻度配置項
axistick_opts=opts.AxisTickOpts(is_show=True),#顯示刻度
# 分割線配置項
splitline_opts=opts.SplitLineOpts(is_show=True),#顯示分割線
),
# 提示框配置項
tooltip_opts=opts.TooltipOpts(is_show=False), # 不顯示提示框組件
)
.render("C:/basic_scatter_chart.html")
)
3.Scatter-多維度數據
from pyecharts import options as opts
from pyecharts.charts import Scatter
from pyecharts.commons.utils import JsCode
from pyecharts.faker import Faker
c = (
Scatter()
.add_xaxis(Faker.choose())
.add_yaxis(
"商家A",
[list(z) for z in zip(Faker.values(), Faker.choose())],
# 標記的大小
symbol_size=20,
#標籤配置項
label_opts=opts.LabelOpts(
# 回調函數,回調函數格式:
# (params: Object|Array) => string
# 參數 params 是 formatter 需要的單個數據集。格式如下:
# {
# componentType: 'series',
# // 系列類型
# seriesType: string,
# // 系列在傳入的 option.series 中的 index
# seriesIndex: number,
# // 系列名稱
# seriesName: string,
# // 數據名,類目名
# name: string,
# // 數據在傳入的 data 數組中的 index
# dataIndex: number,
# // 傳入的原始數據項
# data: Object,
# // 傳入的數據值
# value: number|Array,
# // 數據圖形的顏色
# color: string,
# }
formatter=JsCode(
# 構造回調函數
"function(params){return params.value[1] +' : '+ params.value[2];}"
) #params.value[1]對應y軸Faker.values() : params.value[2]對應y軸Faker.choose()
),
)
.set_global_opts(
title_opts=opts.TitleOpts(title="Scatter-多維度數據"),
# 提示框配置項
tooltip_opts=opts.TooltipOpts(
formatter=JsCode(
# 構造回調函數
"function (params) {return params.name + ' : ' + params.value[2];}"
) #params.name對應x軸的Faker.choose() : params.value[2]對應y軸Faker.choose()
),
# 視覺映射配置項
visualmap_opts=opts.VisualMapOpts(
#顏色映射
type_="color",
max_=150,
min_=20,
dimension=1 ## 組件映射維度
),
)
.render("C:/scatter_multi_dimension.html")
)
顏色映射
暫時不知道怎麼把第三變量映射到顏色中,目前映都是y軸數據
from pyecharts import options as opts
from pyecharts.charts import Scatter
from pyecharts.faker import Faker
c = (
Scatter()
.add_xaxis(Faker.choose())
.add_yaxis("商家A", Faker.values(),symbol_size=20)
.set_global_opts(
title_opts=opts.TitleOpts(title="Scatter-VisualMap(Color)"),
visualmap_opts=opts.VisualMapOpts(
type_='color',
max_=150,
pos_bottom = 50,pos_right = 0),
)
.render("C:/scatter_visualmap_color.html")
)
大小映射
from pyecharts import options as opts
from pyecharts.charts import Scatter
from pyecharts.faker import Faker
c = (
Scatter()
.add_xaxis(Faker.choose())
.add_yaxis("商家A", Faker.values())
.add_yaxis("商家B", Faker.values())
.set_global_opts(
title_opts=opts.TitleOpts(title="Scatter-VisualMap(Size)"),
visualmap_opts=opts.VisualMapOpts(
type_="size", #映射大小
max_=150,
min_=20,
pos_bottom = 50,pos_right = 0),
)
.render("C:/scatter_visualmap_size.html")
)