【发布时间】:2021-12-16 06:49:09
【问题描述】:
在我现在正在进行的实践培训中,有一个 python 脚本可以读取 CSV 文件并针对该文件的选定列进行绘图。然而,标题的选择是硬编码的,所以如果有人想使用脚本,他们必须操纵代码。我的任务是让它充满活力,例如。 G。脚本的用户可以通过控制台 (argparse) 选择任意数量的列,脚本会自动创建跟踪、创建布局、将两者添加到图形并将其导出到 html 文件中。
我已经设法完成了所有这些,除了布局部分。在脚本的当前(硬编码)状态下,有这些参数被传递给graph_objects.Layout 函数:
layout = go.Layout(title=inFile,
plot_bgcolor='rgb(230, 230,230)', showlegend=True,
yaxis=dict(
title=df.columns[y1graph] # Note: 'ygraph' contains the index of the column
),
yaxis2=dict(
title=df.columns[y2graph],
side='right',
overlaying='y'
),
yaxis3=dict(
title=df.columns[y3graph],
side='right',
overlaying='y'
)
)
不幸的是,我还没有找到一种方法来使所有这些都动态化,以便根据所选列的数量添加“yaxis”参数。我也没有找到一种方法来为图表添加标题,使它们相互重叠并将它们放在右侧,就像go.Layout 一样。当然,有一种方法可以使用 plotly express 添加标题,但对于 overlaying 和 side 参数,它对我来说并没有做同样的事情。
有什么想法吗?
请注意:这是我在 stackoverflow 上的第一个问题,所以如果我做错了什么,请指教!另外,如果我遗漏了重要信息,请告诉我。
【问题讨论】:
-
您的问题可能因多种原因而被关闭。您缺少完整的 sn-p 和数据来重现您的问题,并且您在同一篇文章中提出了多个问题。因此,需要进行一些澄清。首先,这是您使用
make_subplots构建的情节吗? -
好的,我会尽力澄清一切。谢谢你的建议!原始脚本是使用 plotly.graph_objects 构建的。不幸的是,由于数据保护原因,我无法共享 CSV,我会询问官员是否允许我共享整个脚本。它的工作方式非常基本:首先,创建了三个跟踪变量,并将它们分配给 go.Scatter 调用。接下来,按照我在原始帖子中显示的方式创建布局。然后使用 go.Figure 创建一个图形,所有跟踪都作为数据与布局一起传递。
-
我会尽快贴出整个代码。
-
Rob raymond 没有找到解决您问题的方法吗?
标签: python pandas plotly plotly.graph-objects