我有一个熊猫系列X
,分别为X1,X2,... Xn
我将X
系列标准化为具有Y
和mean=0
的新std=1
系列。
我想用2个histogram
绘制X
的{{1}},一个是原始值,另一个是归一化值。
我该如何使用matplotlib做到这一点?
更新:
xticks
现在,我想绘制import numpy as np
x = np.random.randint (0,100,1000)
y = (x- np.mean(x))/np.std(x)
的直方图,但还要显示原始值(y
),不仅要显示x
的值。
答案 0 :(得分:1)
这里是一个示例,带有第二个缩放的顶轴:
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');
给出: