Гистограмма Matplotlib, частота как тысячи - PullRequest
2 голосов
/ 28 апреля 2011

У меня есть гистограмма, которую я рисую в matplotlib с приблизительно 260 000 значений или около того.

Проблема в том, что ось частоты (ось y) на гистограмме достигает больших чисел, таких как 100 000 ... ЧтоМне бы очень хотелось, чтобы метки y были тысячами, а не, например,

100000

75000

50000

25000

0

Чтобы иметь это:

100

75

50

25

0

И тогда я могу просто изменить ось Y на "Частота (в тысячах)" - это значительно облегчает чтение таким образом.У кого-нибудь есть идеи, как этого достичь?

Ответы [ 2 ]

13 голосов
/ 28 апреля 2011

Использование matplotlib.ticker.FuncFormatter :

import matplotlib.pyplot as plt
import matplotlib.ticker as ticker
import numpy as np

mu, sigma = 100, 15
x = mu + sigma * np.random.randn(1000000)

fig, ax = plt.subplots()
n, bins, patches = ax.hist(x, 50, facecolor='green', alpha=0.75)

ax.yaxis.set_major_formatter(ticker.FuncFormatter(
    lambda y, pos: '%.0f' % (y * 1e-3)))
ax.set_ylabel('Frequency (000s)')

plt.show()

выход enter image description here

0 голосов
/ 28 апреля 2011

Просто конвертируйте значения самостоятельно, прежде чем они будут введены.В numpy, вы можете сделать просто array/1000 вместо array.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...