专注算法的马里奥学长 2023-01-13 11:04 采纳率: 100%
浏览 25
已结题

Pyechartsr如何将图例绘制在折线图外侧

问题遇到的现象和发生背景

Pyecharts将图例绘制在折线图外侧

遇到的现象和发生背景,请写出第一个错误信息

由于图例较多,希望将图里放在图里外侧。使用Grid()功能指定图像右侧留白,再指定图例位置可达成效果。
但目前由于折线图需要有双轴的功能,所以使用了overlap()对折线图进行重叠。此时再使用Grid()会使坐标轴副轴丢失。请问如何同时实现坐标轴双轴显示与图例在图像外侧显示。

用代码块功能插入代码,请勿粘贴截图。 不用代码块回答率下降 50%
import pandas as pd
import numpy as np
from datetime import datetime
from pyecharts import options as opts
from pyecharts.charts import Line, Bar, Grid


# 数据预处理:包含数据读取,剔除缺失值,时间格式转化
xiongyue20 = pd.read_csv()
data = xiongyue20[~xiongyue20['COD'].isna()]
#data['日期'] = data['日期'].apply(lambda x: datetime.strptime(x, "%Y/%m/%d"))


# 绘制折线图  Aline为降雨数据,Bline为污水厂场站数据
Aline = (
        Line(init_opts=opts.InitOpts(width='1600px', height='800px'))
        .add_xaxis(data['日期'].to_list())
        .add_yaxis('降水量(mm)', data['P'].to_list(),is_symbol_show=False)
        .extend_axis
        (
            yaxis=opts.AxisOpts(
                axislabel_opts=opts.LabelOpts(formatter="{value}")
                                )
        )
        .set_global_opts
            (
            yaxis_opts=(opts.AxisOpts(max_=200)),
            datazoom_opts=(opts.DataZoomOpts()),
            tooltip_opts=opts.TooltipOpts
                (
                trigger='axis', 
                axis_pointer_type='line'
                ),
            title_opts=opts.TitleOpts(title="水厂进水分析"),
            legend_opts=opts.LegendOpts(item_width=80,item_height=30,orient='horizontal')
            )
        )

Bline = (
        Line()
        .add_xaxis(data['日期'].to_list())
        .add_yaxis('进水量(万吨/日)', data['进水'].to_list(), yaxis_index=1, is_symbol_show=False)
        .add_yaxis('COD(mg/L)', data['COD'].to_list(), yaxis_index=1, is_symbol_show=False) 
        .add_yaxis('BOD(mg/L)', data['BOD'].to_list(), yaxis_index=1, is_symbol_show=False) 
        .add_yaxis('TN(mg/L)', data['TN'].to_list(), yaxis_index=1, is_symbol_show=False) 
        .add_yaxis('TP(mg/L)', data['TP'].to_list(), yaxis_index=1, is_symbol_show=False) 
        .set_global_opts()
        )

Aline.overlap(Bline)

grid=Grid()
grid.add(Aline,grid_opts=opts.GridOpts(pos_right="20%"))
    
Aline.render()
  • 写回答

0条回答 默认 最新

    报告相同问题?

    问题事件

    • 已结题 (查看结题原因) 1月15日
    • 创建了问题 1月13日

    悬赏问题

    • ¥15 oracle集群安装出bug
    • ¥15 关于#python#的问题:自动化测试
    • ¥20 问题请教!vue项目关于Nginx配置nonce安全策略的问题
    • ¥15 教务系统账号被盗号如何追溯设备
    • ¥20 delta降尺度方法,未来数据怎么降尺度
    • ¥15 c# 使用NPOI快速将datatable数据导入excel中指定sheet,要求快速高效
    • ¥15 再不同版本的系统上,TCP传输速度不一致
    • ¥15 高德地图2.0 版本点聚合中Marker的位置无法实时更新,如何解决呢?
    • ¥15 DIFY API Endpoint 问题。
    • ¥20 sub地址DHCP问题