[pyecharts学习笔记]——Scatter散点图

先看对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")
)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章