[英]Plotly: How to handle varying text sizes in a stacked funnel plot?
我正在嘗試制作活動的堆疊漏斗 plot。 plot 上的標簽未按預期顯示。
首先我的代碼:
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 文檔)
請注意,在“第 3 步”、“已添加到購物車”和“已購買”中,區域 A 的文本被縮放得非常小並且在條內,但區域 B 在外面。
我嘗試更新這一行:
fig.update_traces(textposition='outside')
但是,有了這個,我得到兩個值在漏斗的 B 區重疊。 此外,文本超出了上部頻帶的 plot 之外。
我怎樣才能讓文本大小相同,並且如果它適合大小,或者在外面和正確的一側,如果它不適合,那么它要么在條內?
這似乎是一個錯誤。 如果您需要的是圖形的.png
圖像,請運行:
import plotly
plotly.offline.plot(fig, filename='funnel.html')
然后使用用戶界面相機圖標生成.png
版本:
這是一個奇怪的問題。 並且很可能是 plotly 社區論壇感興趣的錯誤。 我有一個解決方法。 假設您實際上想要在這里結束的是 plot 的.png
圖像文件。
如果您在 JupyterLab 中運行您的確切代碼,但僅將fig.write_image("region_funnel.png")
行與fig.show()
交換,您將得到:
那里沒有小文字,如果我理解正確? 一個不改變文本大小的圖形會是一個令人滿意的解決方案嗎? 但是fig.show()
創建的是 html object,而不是.png
圖像。 所以我測試了fig.write_image()
的可用 output 選項,它們是:
我排除了webp
和eps
作為可行的解決方案,並測試了其中的 rest。 並且每一個都產生了相同的未分類的不同文本大小。 即使在 JupyterLab 中使用fig.show()
生成圖形,然后使用用戶界面相機圖標手動下載文件,也會產生完全相同的結果,即使html 版本看起來不錯。
但是如果你運行:
import plotly
plotly.offline.plot(fig, filename='funnel.html')
然后下載一個.png
版本,你會得到這個:
如果我理解正確,這對你來說應該是一個可行的選擇。 誠然,這遠不是一個完美的答案,但我希望你會發現它同樣有用。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.