欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Python.pyecharts.charts折线图新旧版本对比详解!

程序员文章站 2022-07-02 22:30:01
旧版本(0.5.10)实现from pyecharts import Lineline=Line("美国邮费阶梯图")datax =[1995,1996,1997,1998,1999,2001,2002,2003,2004,2005,2006,2007,2008,2009]datay =[0.32,0.32,0.32,0.32,0.33,0.33,0.34,0.37,0.37,0.37,0.37,0.39,0.41,0.42,0.44]line.add("Price",datax,datay,is...

旧版本(0.5.10)实现

from pyecharts import Line
line=Line("美国邮费阶梯图")
datax =[1995,1996,1997,1998,1999,2001,2002,2003,2004,2005,2006,2007,2008,2009]
datay =[0.32,0.32,0.32,0.32,0.33,0.33,0.34,0.37,0.37,0.37,0.37,0.39,0.41,0.42,0.44]
line.add("Price",datax,datay,is_step=True,is_label_show=True,yaxis_min=0.3,taxis_max=0.45)
line.render()

新版本实现(1.81以上)

from pyecharts.charts import Line
import pyecharts.options as opts
x = ['1995','1996','1997','1998','1999','2000','2001','2002','2003','2004','2005','2006','2007','2008','2009']
y = [0.32,0.32,0.32,0.32,0.33,0.33,0.34,0.37,0.37,0.37,0.37,0.39,0.41,0.42,0.44]
# x=['星期一','星期二','星期三','星期四','星期五','星期七','星期日']
# y=[100,200,300,400,500,400,300]
line = (
    Line()
    # .set_global_opts(
#  问题一、set_global_opts是干啥的??有啥用??
#  答: 总体配置项 ,全局配置项可通过set_global_options方法设置(颜色,大小,标题,等等等)
#  问题四、其中都有哪些需要注意的东西?
#  答: 我还在学,会了再整理
    #     tooltip_opts=opts.TooltipOpts(is_show=False),
    #     xaxis_opts=opts.AxisOpts(type_="category"),
    #     yaxis_opts=opts.AxisOpts(
    #         type_="value",
    #         axistick_opts=opts.AxisTickOpts(is_show=True),
    #         splitline_opts=opts.SplitLineOpts(is_show=True),
    #     ),
    # )
    .set_global_opts(
        title_opts=opts.TitleOpts(title="美国邮费阶梯图"),
        yaxis_opts=opts.AxisOpts(
            min_=0.3,
            max_=0.45,
            splitline_opts=opts.SplitLineOpts(is_show=True)
        )
    )
    .add_xaxis(xaxis_data=x)
    .add_yaxis(
# 问题二、 没有找到可以调节y轴最小值和最大值的方法????,只能从0开始吗?旧版本可实现,新版本的在哪实现?
# 答:在 .set_global_opts 里
        series_name="美国邮政变化阶梯图",
        y_axis=y,
        is_smooth=True, #是否平滑
        #symbol_size=[10,20],
        #yaxis_index=[0.3,0.45], 错误测试不用管
        symbol="emptyCircle",
        is_symbol_show=True,
        #is_step=True,  #控制曲线是否平滑
        label_opts=opts.LabelOpts(is_show=False),
    )
)
line.render("./html/阶梯图.html")
# 问题三、能不能把生成的html文件直接放到自己建的另一个文件夹里呢,就是换地址存放(不存放在当前地址)?
# 答:可以,render支持加入路径参数。

add.yaxis 属性详解说明

    def add_yaxis(
        self,
        series_name: str, # 系列名称,用于 tooltip 的显示,legend 的图例筛选。
        y_axis: types.Sequence[types.Union[opts.LineItem, dict]], # 系列数据
        *,
        is_selected: bool = True, #是否选中图例
        is_connect_nones: bool = False, # 是否连接空数据,空数据使用 `None` 填充
        xaxis_index: types.Optional[types.Numeric] = None, #在单个图表中存在多个x轴时使用
        yaxis_index: types.Optional[types.Numeric] = None, #在单个图表中存在多个y轴时使用
        color: types.Optional[str] = None,   #系列label颜色
        is_symbol_show: bool = True, # 是否显示 symbol, 如果 false 则只有在 tooltip hover 的时候显示。

        # 标记的图形。
        # ECharts 提供的标记类型包括 'circle', 'rect', 'roundRect', 'triangle',
        # 'diamond', 'pin', 'arrow', 'none'
        # 可以通过 'image://url' 设置为图片,其中 URL 为图片的链接,或者 dataURI。
        symbol: types.Optional[str] = None,

        # 标记的大小,可以设置成诸如 10 这样单一的数字,也可以用数组分开表示宽和高,
        # 例如 [20, 10] 表示标记宽为 20,高为 10。
        symbol_size: types.Union[types.Numeric, types.Sequence] = 4,

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

        is_smooth: bool = False, # 是否平滑曲线
        is_clip: bool = True,  # 是否裁剪超出坐标系部分的图形。折线图:裁掉所有超出坐标系的折线部分,拐点图形的逻辑按照散点图处理
        is_step: bool = False, # 是否显示成阶梯图
        is_hover_animation: bool = True, # 是否开启 hover 在拐点标志上的提示动画效果。

        # 折线图所有图形的 zlevel 值。
        # zlevel用于 Canvas 分层,不同zlevel值的图形会放置在不同的 Canvas 中,Canvas 分层是一种常见的优化手段。
        # zlevel 大的 Canvas 会放在 zlevel 小的 Canvas 的上面。
        z_level: types.Numeric = 0,

        # 折线图组件的所有图形的z值。控制图形的前后顺序。z值小的图形会被z值大的图形覆盖。
        # z 相比 zlevel 优先级更低,而且不会创建新的 Canvas。
        z: types.Numeric = 0,

        markpoint_opts: types.MarkPoint = None,
        markline_opts: types.MarkLine = None,
        tooltip_opts: types.Tooltip = None,
        itemstyle_opts: types.ItemStyle = None,
        label_opts: types.Label = opts.LabelOpts(),
        linestyle_opts: types.LineStyle = opts.LineStyleOpts(),
        areastyle_opts: types.AreaStyle = opts.AreaStyleOpts(),
    ):

        self._append_color(color)
        self._append_legend(series_name, is_selected)

        # 合并 x 和 y 轴数据,避免当 X 轴的类型设置为 'value' 的时候,
        # X、Y 轴均显示 Y 轴数据
        data = [list(z) for z in zip(self._xaxis_data, y_axis)]

        self.options.get("series").append(  # 这个是干什么用的?????
            {
                "type": ChartType.LINE,
                "name": series_name,
                "connectNulls": is_connect_nones,
                "xAxisIndex": xaxis_index,
                "yAxisIndex": yaxis_index,
                "symbol": symbol,
                "symbolSize": symbol_size,
                "showSymbol": is_symbol_show,
                "smooth": is_smooth,
                "clip": is_clip,
                "step": is_step,
                "stack": stack,
                "data": data,
                "hoverAnimation": is_hover_animation,
                "label": label_opts,
                "lineStyle": linestyle_opts,
                "areaStyle": areastyle_opts,
                "markPoint": markpoint_opts,
                "markLine": markline_opts,
                "tooltip": tooltip_opts,
                "itemStyle": itemstyle_opts,
                "zlevel": z_level,
                "z": z,
            }
        )
        return self

本文地址:https://blog.csdn.net/qq_43527959/article/details/110872701

相关标签: python