繁体   English   中英

在每个数据点具有对齐注释的散点图

[英]scatter plot with aligned annotations at each data point

我想制作一个包含几十个点的散点图,这些点可能非常接近。 我已经尝试了从问题的答案中注释的方法:

>> matplotlib 散点图在每个数据点具有不同的文本

但是当点彼此足够接近时,您可以看到标签/注释重叠。 是否有任何库或方法可以生成带有单独注释的图,这些注释不会相互冲突,也不会与图的边界发生冲突?

 import matplotlib.pyplot as plt z = [0.15, 0.3, 0.45, 0.46, 0.6, 0.75] y = [2.56422, 3.77284, 3.52623, 3.52623, 3.51468, 3.02199] n = [58, 651, 393, "393(2)", 203, 123] fig, ax = plt.subplots() ax.scatter( z, y ) for i, txt in enumerate( n ): ax.annotate( txt, ( z[i] + .01, y[i] + .01 ) ) plt.show()
带有碰撞注释的散点图

我写了一个库adjustText正是这样做的。 https://github.com/Phlya/adjustText

z = [0.15, 0.3, 0.45, 0.46, 0.6, 0.75]
y = [2.56422, 3.77284, 3.52623, 3.52623, 3.51468, 3.02199]
n = [58, 651, 393, "393(2)", 203, 123]

fig, ax = plt.subplots()
ax.scatter( z, y )
texts = []
for i, txt in enumerate( n ):
    texts.append(ax.text(z[i], y[i], txt))
adjust_text(texts)
plt.show()

在此处输入图像描述

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM