matplotlib: гистограмма с двумя точками? - PullRequest
0 голосов
/ 03 сентября 2018

У меня есть серия панд X как X1, X2, ... Xn

Я нормализую серию X, чтобы получить новую серию Y с mean=0 и std=1.

Я хочу построить histogram из X с 2 xticks, один - исходные значения, а другой - нормализованные значения.

Как я могу это сделать с помощью matplotlib?

Обновление

import numpy as np

x = np.random.randint (0,100,1000)

y = (x- np.mean(x))/np.std(x)

Теперь я хочу построить гистограмму y, но также показать исходные значения (x), а не только значения y.

1 Ответ

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

Вот пример со второй масштабированной верхней осью:

import numpy as np
import matplotlib.pyplot as plt

# Some data
x = 12 + 3*np.random.randn(1000)
x_normed = (x - np.mean(x))/np.std(x)

# Graph
fig, ax1 = plt.subplots()

ax1.hist(x_normed, bins=20)

x1_lim = np.array(ax1.get_xlim())
x2_lim = x1_lim*np.std(x) + np.mean(x)

ax2 = ax1.twiny()
ax2.set_xlim(x2_lim)

ax1.set_ylabel('count')
ax1.set_xlabel('normed x', color='k')
ax2.set_xlabel('x', color='k');

Делать наоборот - я думаю, лучше:

import numpy as np
import matplotlib.pyplot as plt

# Some data
x = 12 + 3*np.random.randn(1000)

# Graph
fig, ax1 = plt.subplots()

ax1.hist(x, bins=20)

x1_lim = np.array(ax1.get_xlim())
x2_lim = (x1_lim - np.mean(x))/np.std(x)

ax2 = ax1.twiny()
ax2.set_xlim(x2_lim)

ax1.set_ylabel('count')
ax1.set_xlabel('x', color='k')
ax2.set_xlabel('x normed', color='k');

, что дает:

hist_with_multiple_axis

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