自动将散点图的标签围绕点放置,以使它们不会相互覆盖

时间:2018-09-07 18:33:21

标签: python numpy matplotlib plot scatter-plot

在此一维散点图中:

import numpy as np
import matplotlib.pyplot as plt

D = {'label1': 7.33, 'label2': 7.12, 'label3': 4.26, 'label4': 6.98}
plt.scatter(D.values(), [0] * 4, marker='o', s=[100] * 4, cmap=plt.get_cmap('Spectral'))
for i, k in enumerate(D):
    plt.annotate(k, xy=(D[k], 0), xytext=(-20, 20), textcoords='offset points', ha='right', va='bottom', bbox=dict(boxstyle='round,pad=0.5', fc='yellow', alpha=0.5), arrowprops=dict(arrowstyle = '->', connectionstyle='arc3,rad=0'))

plt.show()

标签相互覆盖。

如何让scatter / annotate找到最合适的位置来将标签自动围绕点放置?

enter image description here

0 个答案:

没有答案