数据可视化技术Pyecharts折线图Line详细代码注释学习笔记1

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/weixin_44146276/article/details/102705998

前言

目前来讲,pyecharts相对matplotlib来说,明显的优点多些,加上是我们国家的百度开源的项目,
现在pyecharts分0.5和1的版本,由于0.5版本不再更新与维护,这里记录1的版本语法
之前学习过一段时间echarts,也学了段时间pyecharts,现在打算整理下笔记,分享促进爱好者们一起学习

总结

10个小例子

type_这个属性注意加下划线 , pyecharts可以使用单引号’ '也可以使用双引号""存储变量值,
我们看到的数据每次运行都不相同,是因为faker模块每次都生成新的随机数据

首先导入通用的python模块
from pyecharts.charts import Line
import pyecharts.options as opts
from pyecharts.faker import Faker

说明上述模块:第1行代码:从pyecharts.charts导入Line模块。Line是折线图模块,是用来生成折线图的。
第2行代码:导入pyecharts模块下的子模块options取别名为opts,使用 options 配置项,在 pyecharts 中,一切皆 Options。
第3行代码:从faker中导入Faker模块,这个模块是用来生成随机数据的,即我们学习当中不用准备模拟数据。

例1 基本示例
    '''
    set_global_opts是设置全局配置,title_opts是属性,这里通过别名opts调用options里的TitleOpts方法设置图表标题,title也是固定的属性
    '''
line1=(
    Line() # 生成line类型图表
    .add_xaxis(Faker.choose())  # 添加x轴,Faker.choose()是使用faker的随机数据生成x轴标签
    .add_yaxis('数据1',Faker.values())  # 添加y轴,Faker.values()是使用faker的随机数据生成y轴数值
    .add_yaxis('数据2',Faker.values())
    .set_global_opts(title_opts=opts.TitleOpts(title='Line 基本示例'))
)
line1.render('pyecharts-line.html') # 生成一个名为pyecharts-line.html的网页文件,打开网页就是下图

图片加载中

例2 数值x轴
line2=(
    Line()
    .add_xaxis(Faker.values())
    .add_yaxis('数据1',Faker.values())
    .add_yaxis('数据2',Faker.values())
    .set_global_opts(
        title_opts=opts.TitleOpts(title='Line 数值x轴'),
        xaxis_opts=opts.AxisOpts(type_='value') # 设置x轴类型属性为value数值类型
    )
)
line2.render('pyecharts-line.html')

在这里插入图片描述

例3 连接空数据
y=Faker.values() # 这里先把随机数据赋给y变量做y轴数值
y[3],y[5]=None,None
line3=(
    Line()
    .add_xaxis(Faker.choose())
    .add_yaxis('数据1',y,is_connect_nones=True)# 这里设置连接空数据
    .set_global_opts(title_opts=opts.TitleOpts(title='line 连接空数据'))
)
line3.render('pyecharts-line.html')

在这里插入图片描述

例4 平滑曲线
line4=(
    Line()
    .add_xaxis(Faker.choose())
    .add_yaxis('数据1',Faker.values(),is_smooth=True)# 设置线为平滑的
    .add_yaxis('数据2',Faker.values(),is_smooth=True)
    .set_global_opts(title_opts=opts.TitleOpts(title='line smooth'))
)
line4.render('pyecharts-line.html')

在这里插入图片描述

例5 对数轴示例
line5=(
    Line()
    .add_xaxis(xaxis_data=['一','二','三','四','五','六','七','八','九'])
    .add_yaxis(
        '2的指数',
        y_axis=[1,2,4,8,16,32,64,128,256],
        linestyle_opts=opts.LineStyleOpts(width=2) # 线宽度设置为2
    )
    .add_yaxis(
        '3的指数',
        y_axis=[1,3,9,27,81,247,741,2223,6669],
        linestyle_opts=opts.LineStyleOpts(width=2),
    )
    .set_global_opts(
        title_opts=opts.TitleOpts(title='line 对数轴示例'),
        xaxis_opts=opts.AxisOpts(name='x'),# 设置x轴名字属性
        yaxis_opts=opts.AxisOpts(
            type_='log', # 设置类型
            name='y', # 设置y轴名字属性
            splitline_opts=opts.SplitLineOpts(is_show=True),# 这里将分割线显示
            is_scale=True # 这里范围设置true是显示线的顶端,设置为False的话就只会显示前2个数值
        )
    )
)
line5.render('pyecharts-line.html')

在这里插入图片描述

例6 MarkPoint标记点
line6=(
    Line()
    .add_xaxis(Faker.choose())
    .add_yaxis(
        '数据1',
        Faker.values(),
        # 使用markpoint标记点属性,数据类型设置为min会最小值生成标记点
        markpoint_opts=opts.MarkPointOpts(data=[opts.MarkPointItem(type_='min')])
    )
    .add_yaxis(
        '数据2',
        Faker.values(),
        # 使用max类型标记点
        markpoint_opts=opts.MarkPointOpts(data=[opts.MarkPointItem(type_='max')])
    )
    .set_global_opts(title_opts=opts.TitleOpts(title='Line-MarkPoint'))
)
line6.render('pyecharts-line.html')

在这里插入图片描述

例7 MarkPoint 标记点自定义
x,y=Faker.choose(),Faker.values()
line7=(
    Line()
    .add_xaxis(x)
    .add_yaxis(
        '数据1',
        y,
        markpoint_opts=opts.MarkPointOpts(
        # 使用coord这个属性设置自定义标记点数值,这是的2代表3,编程列表索引顺序一般1是从0开始的
            data=[opts.MarkPointItem(name='自定义标记点',coord=[x[2],y[2]],value=y[2])]
        )
    )
    .set_global_opts(title_opts=opts.TitleOpts(title='Line MarkPoint 自定义'))
)
line7.render('pyecharts-line.html')

在这里插入图片描述

扫描二维码关注公众号,回复: 7595231 查看本文章
例8 MarkLine标记线
line8=(
    Line()
    .add_xaxis(Faker.choose())
    .add_yaxis(
        '数据1',
        Faker.values(),
        markline_opts=opts.MarkLineOpts(data=[opts.MarkLineItem(type_='average')]),
    )
    .add_yaxis(
        '数据2',
        Faker.values(),
        markline_opts=opts.MarkLineOpts(data=[opts.MarkLineItem(type_='average')]),
       )
    .set_global_opts(title_opts=opts.TitleOpts(title='Line MarkLine')) # 使用标记线
)
line8.render('pyecharts-line.html'

在这里插入图片描述

例9 阶梯图
line9=(
    Line()
    .add_xaxis(Faker.choose())
    .add_yaxis('数据1',Faker.values(),is_step=True) # 数值设置step脚步即折线图变阶梯图
    .set_global_opts(title_opts=opts.TitleOpts(title='Line 阶梯图'))
)
line9.render('pyecharts-line.html')

在这里插入图片描述

例10 ItemStyle 项目样式

折线图项目为线,柱状图的项目就是柱子,饼图就是扇区

line10=(
    Line()
    .add_xaxis(xaxis_data=Faker.choose())
    .add_yaxis(
        '数据1',
        Faker.values(),
        symbol='square', # 线数值的标志,也可以为菱形、三角形、矩形等,这是设置为正方形
        symbol_size=15, # 标志大小
        # 设置线样式,颜色color为黑色,宽度width为5,类型为虚线,也可以设置实线、点线等
        linestyle_opts=opts.LineStyleOpts(color='black',width=5,type_='dashed'),
        label_opts=opts.LabelOpts(is_show=False),
        itemstyle_opts=opts.ItemStyleOpts(
            border_width=4,border_color='blue',color='red' # 设置边框标志宽度,边框颜色和边框里面颜色
        )
    )
    .set_global_opts(
        title_opts=opts.TitleOpts(title='Line ItemStyle'),
        xaxis_opts=opts.AxisOpts(type_='category'), # 设置x轴类型为种类
        yaxis_opts=opts.AxisOpts(
            type_='value',
            axistick_opts=opts.AxisTickOpts(is_show=True),
            splitline_opts=opts.SplitLineOpts(is_show=True)
        ),
        tooltip_opts=opts.TooltipOpts(is_show=False)
    )
)
line10.render('pyecharts-line.html')

在这里插入图片描述
折线图暂时整理记录到这。

配置项说明

官方给出的初始化配置项,所有图表通用

class Bar(

init_opts: opts.InitOpts = opts.InitOpts()

)

官方柱状图y轴的配置项

def add_yaxis(
# 系列名称,用于 tooltip 的显示,legend 的图例筛选。
series_name: str,

# 系列数据
yaxis_data: Sequence[Numeric, opts.BarItem, dict],

# 是否选中图例
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,

# 数据堆叠,同个类目轴上系列配置相同的 stack 值可以堆叠放置。
stack: Optional[str] = None,

# 同一系列的柱间距离,默认为类目间距的 20%,可设固定值
category_gap: Union[Numeric, str] = "20%",

# 不同系列的柱间距离,为百分比(如 '30%',表示柱子宽度的 30%)。
# 如果想要两个系列的柱子重叠,可以设置 gap 为 '-100%'。这在用柱子做背景的时候有用。
gap: Optional[str] = None,

# 标签配置项,参考 `series_options.LabelOpts`
label_opts: Union[opts.LabelOpts, dict] = opts.LabelOpts(),

# 标记点配置项,参考 `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,

)

BarItem:柱状图数据项

class BarItem(
# 数据项名称。
name: Optional[str] = None,

# 单个数据项的数值。
value: Optional[Numeric] = None,

# 单个柱条文本的样式设置,参考 `series_options.LabelOpts`。
label_opts: Union[LabelOpts, dict, None] = None,

# 图元样式配置项,参考 `series_options.ItemStyleOpts`
itemstyle_opts: Union[ItemStyleOpts, dict, None] = None,

# 提示框组件配置项,参考 `series_options.TooltipOpts`
tooltip_opts: Union[TooltipOpts, dict, None] = None,

)

猜你喜欢

转载自blog.csdn.net/weixin_44146276/article/details/102705998
今日推荐