gpt4 book ai didi

python - Plotly:如何处理堆叠漏斗图中不同的文本大小?

转载 作者:行者123 更新时间:2023-12-04 08:26:04 26 4
gpt4 key购买 nike

我正在尝试生成事件的堆叠漏斗图。标签未按预期出现在图中。

首先是我的代码:

import pandas as pd
import plotly.express as px

stages = ["Initial Landing", "Step 2", "Step 3", "Added to cart", "Purchased"]
regiona_plotly = pd.DataFrame(dict(number=[10866,10543,1067,1032,108], stage=stages))
regionb_plotly = pd.DataFrame(dict(number=[10650,10432,1076,1036,1012], stage=stages))
regiona_plotly['region'] = "Region A"
regionb_plotly['region'] = "Region B"
df = pd.concat([regiona_plotly, regionb_plotly], axis=0)
fig = px.funnel(df, x='number', y='stage', color='region')
fig.update_traces(textposition='auto')
fig.update_layout(autosize=True)
fig.write_image("region_funnel.png")

(几乎完全从 plotly documents 中提取)

此代码生成如下图像: Plotly - Auto Text Position

请注意,在“第 3 步”、“添加到购物车”和“已购买”中,区域 A 的文本缩放得非常小并且在栏内,但区域 B 在栏外。

我尝试更新这一行:

fig.update_traces(textposition='outside')

但是,有了这个,我在漏斗的区域 B 侧得到了重叠的两个值。此外,文本超出了上部波段的 plotly 。

Plotly - Outside Text Position

我怎样才能使文本大小相同,如果适合大小则在栏内,如果不适合则在栏外和正确的一侧?

最佳答案

简答:

这似乎是一个错误。如果您需要的是您的图形的 .png 图像,请运行:

import plotly
plotly.offline.plot(fig, filename='funnel.html')

然后使用用户界面相机图标生成一个 .png 版本:

enter image description here

结果:

enter image description here


详情:

这是一个奇怪的问题。并且很可能是 plotly 社区论坛感兴趣的错误。我有一个解决方法。假设您实际上想要在这里结束的是您绘图的 .png 图像文件。

如果您在 JupyterLab 中运行您的确切代码,但将 fig.write_image("region_funnel.png") 行替换为 fig.show(),您会得到这个:

enter image description here

那里没有小文字!如果我理解正确,没有改变文字大小的数字将是一个令人满意的解决方案?但是 fig.show() 创建了一个 html 对象,而不是 .png 图像。所以我测试了 fig.write_image() 的可用输出选项,它们是:

  • 'png'
  • 'jpg' 或 'jpeg'
  • 'webp'
  • 'svg'
  • 'pdf'
  • 'eps'(需要安装 poppler 库)

我排除了 webpeps 作为可行的解决方案并测试了其余的解决方案。每个人都产生了相同的、不需要的、不同大小的文本。即使在 JupyterLab 中使用 fig.show() 生成图形,然后使用用户界面相机图标手动下载文件也产生了完全相同的结果,即使 html 版本看起来不错.

但是如果你运行:

import plotly
plotly.offline.plot(fig, filename='funnel.html')

然后下载一个.png版本你会得到这个:

enter image description here

如果我理解正确的话,这对你来说应该是一个可行的选择。诚然,这远不是一个完美的答案,但我希望你会发现它仍然有用。

关于python - Plotly:如何处理堆叠漏斗图中不同的文本大小?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65254691/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com