绘制值以及单个轴上的标签(1D散点图)

问题描述 投票:1回答:1

如何使用matplotlib以及像这样的字典来绘制轴上的标签以及轴上的标签:

D = {'label1': 7.33, 'label2': 7.12, 'label3': 4.26, 'label4': 6.98}

?

它应该输出

enter image description here

这个目标是非常容易地以图形方式查看异常值,即一维散点图,如下所示:

enter image description here

但每个点附近都有一个标签。

python matplotlib plot scatter-plot
1个回答
1
投票

您可以使用次要和主要刻度标签在显示轴上方和下方的标签之间交替。

import matplotlib.pyplot as plt

fig, ax = plt.subplots()

D = {'label1': 7.33, 'label2': 7.12, 'label3': 4.26, 'label4': 6.98}

labs, vals = zip(*sorted([(k,v) for k,v in D.items()], key=lambda t: t[1] ))
ticks = ["{}\n{}".format(k,v) for k,v in zip(labs,vals)]

ax.set_xticks(vals[::2])
ax.set_xticklabels(ticks[::2])
ax.set_xticks(vals[1::2], minor=True)
ax.set_xticklabels(ticks[1::2], minor=True, va="bottom")

ax.tick_params(which="minor", direction="in", pad=-10 )


plt.plot(vals, list(range(len(vals))))
plt.show()

enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.