Значения графика, а также метки на одной оси (1D-диаграмма рассеяния) - PullRequest
0 голосов
/ 07 сентября 2018

Как нанести на карту не только значения, но и метки на оси с matplotlib со следующим указанием:

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

должно вывести

enter image description here

Эта цель состоит в том, чтобы очень легко увидеть выбросы в графическом виде, то есть одномерный график, как это:

enter image description here

но с ярлыком рядом с каждой точкой.

1 Ответ

0 голосов
/ 07 сентября 2018

Вы можете использовать младшие и основные метки, чтобы чередовать отображение надписи над и под осью.

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

...