如何避免在散点图中重叠文本?

Posted

技术标签:

【中文标题】如何避免在散点图中重叠文本?【英文标题】:How to avoid overlapping text in a plotly scatter plot? 【发布时间】:2021-07-14 01:18:42 【问题描述】:

我正在寻找一种解决方案来避免文本标签中的文本重叠。我用散点图创建图像。也许这里有自动化。

from pandas import util
import plotly.express as px
import plotly.graph_objects as go

df= util.testing.makeDataFrame()
df_keyfigures_all = df[['A','B']]



fig = px.scatter(df_keyfigures_all, x="A", y="B",size_max=60,
                     text=df_keyfigures_all.index)

fig.update_traces(textposition='top center')
fig.layout = go.Layout(yaxis=dict(tickformat=".0%"), xaxis=dict(tickformat=".0%"),
                       yaxis_title="A", xaxis_title="B")


fig.update_layout(showlegend=False)
plotly.io.write_image(fig, file='keyfigures.png', format='png')

感谢您的帮助!

【问题讨论】:

【参考方案1】:

这不是完美的解决方案,但一种方法是将文本隐藏在悬停文本中。

fig = px.scatter(df_keyfigures_all, x="A", y="B",size_max=60,
                 hover_name = df_keyfigures_all.index)

【讨论】:

谢谢,但我必须使用 pdf 格式的图像【参考方案2】:

不幸的是,似乎没有直接的方法可以做到这一点。稍微挖掘一下 plotly 社区论坛,您会发现它有 already been requested 和问题的 developers are aware。

【讨论】:

以上是关于如何避免在散点图中重叠文本?的主要内容,如果未能解决你的问题,请参考以下文章

[散点图][Plotly][Python] 如何在散点图中标记心形

echart散点图问题:如何在散点图中特别标出某一个特定的点,如[120,70]

在散点图中可视化文本类

R语言ggplot2可视化:ggplot2可视化分组散点图并使用geom_smooth函数在散点图图中为不同的散点簇添加对应的回归曲线

如何在散点图中显示图例以区分类

R语言可视化散点图(scatter plot)并在散点图中叠加回归曲线叠加lowess拟合曲线(linear and lowess fit lines)使用plotlineabline函数