【问题标题】:Plot values but also labels on a single axis (1D scatter plot)在单轴上绘制值,但也在标签上(一维散点图)
【发布时间】:2018-09-07 15:34:46
【问题描述】:

如何使用matplotlib 绘制坐标轴上的值和标签,这样的字典:

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

?

它应该输出

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

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

【问题讨论】:

  • 最佳策略取决于您显示的数据类型(即每个数据点是否有自己的标签)。该问题没有提供足够的细节来找出答案。
  • @ImportanceOfBeingErnest 是的,每个数据点(约 20 个点)都有自己的标签。

标签: python matplotlib plot scatter-plot


【解决方案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()

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-08-12
  • 1970-01-01
  • 1970-01-01
  • 2022-07-28
  • 1970-01-01
相关资源
最近更新 更多