ps:散點圖是指在迴歸分析中,經常用來分析2類數據之間正相關和負相關的可視化圖表,本章例1將會用到自定義數據來更直觀理解散點圖,其他例子採用隨機數據
導入python模塊
from pyecharts.faker import Faker
from pyecharts import options as opts
from pyecharts.charts import Scatter # 導入散點圖繪製模塊
from pyecharts.commons.utils import JsCode
# 例1 自定義數據基本示例
y1=[[12,4],[2,5],[2,6],[3,15],[3,6]]
y2=[[8,2],[28,4],[18,6],[8,61],[7,2]]
scatter1=(
Scatter()
.add_xaxis(Faker.choose())
.add_yaxis('數據1',y1)
.add_yaxis('數據2',y2)
.set_global_opts(title_opts=opts.TitleOpts(title='例1 scatter自定義數據基本示例'))
)
scatter1.render('echarts-scatter.html')
# 例2 顯示分割線
scatter2=(
Scatter()
.add_xaxis(Faker.choose())
.add_yaxis('數據1',Faker.values())
.set_global_opts(
title_opts=opts.TitleOpts(title='例2 scatter 顯示分割線'),
xaxis_opts=opts.AxisOpts(splitline_opts=opts.SplitLineOpts(is_show=True)),# 顯示x軸分割線
yaxis_opts=opts.AxisOpts(splitline_opts=opts.SplitLineOpts(is_show=True))# 顯示y軸分割線
)
)
scatter2.render('echarts-scatter.html')
# 例3 VisualMap(帶color)
scatter3=(
Scatter()
.add_xaxis(Faker.choose())
.add_yaxis('數據1',Faker.values())
.set_global_opts(
title_opts=opts.TitleOpts(title='例3 scatter VisualMap(帶color)'),
visualmap_opts=opts.VisualMapOpts(max_=200)# 產生一個能夠交互式的顯示數據的工具圖
)
)
scatter3.render('echarts-scatter.html')
visualmap_opts不設置類型默認 爲 帶顏色的工具圖
# 例4 VisualMap(size)
scatter4=(
Scatter()
.add_xaxis(Faker.choose())
.add_yaxis('數據1',Faker.values())
.add_yaxis('數據2',Faker.values())
.set_global_opts(
title_opts=opts.TitleOpts(title='例4 scatter VisualMap(size)'),
visualmap_opts=opts.VisualMapOpts(type='size',max_=150,min_=20)
# 產生能夠交互式的顯示數據的工具圖,類型爲size,不設置的話默認是類型爲color
)
)
scatter4.render('echarts-scatter.html')
# 例5 多維度+自定義數據
scatter5=(
Scatter()
.add_xaxis(Faker.choose())
.add_yaxis(
"商家A",
[list(z) for z in zip(Faker.values(), Faker.choose())],
label_opts=opts.LabelOpts(
formatter=JsCode(# 調用js代碼設置方法提取參數第2個值和參數第3個值
"function(params){return params.value[1] +' : '+ params.value[2];}"
)
),
)
.set_global_opts(
title_opts=opts.TitleOpts(title="例5 Scatter-多維度數據"),
tooltip_opts=opts.TooltipOpts(# tooltip是鼠標移上去的提示
formatter=JsCode(# 調用js代碼設置方法提取參數名字和參數第3個值
"function (params) {return params.name + ' : ' + params.value[2];}"
)
),
visualmap_opts=opts.VisualMapOpts(
max_=150, min_=20, dimension=1
# dimension設置維度爲1維
),
)
)
scatter5.render('echarts-scatter.html')
官方給出的一些配置參數
def add_yaxis(
# 系列名稱,用於 tooltip 的顯示,legend 的圖例篩選。
series_name: str,
# 系列數據
y_axis: Sequence,
# 是否選中圖例
s_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,
# 標籤配置項,參考 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,
)