为了账号安全,请及时绑定邮箱和手机立即绑定

matplotlib:带有 2 个 xticks 的直方图?

matplotlib:带有 2 个 xticks 的直方图?

jeck猫 2021-06-04 18:40:35
我有一个熊猫系列,X如 X1、X2、... Xn我正常化X系列有一个新的Y与系列mean=0和std=1。我想用 2绘制histogramof ,一个是原始值,另一个表示归一化值。Xxticks我怎么能用 matplotlib 做到这一点?更新:import numpy as npx = np.random.randint (0,100,1000)y = (x- np.mean(x))/np.std(x)现在我想绘制 的直方图y,而且还要显示原始值 ( x),而不仅仅是 的值y。
查看完整描述

1 回答

?
翻阅古今

TA贡献1780条经验 获得超5个赞

这是一个示例,带有第二个缩放的顶轴:


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');

这使:

//img1.sycdn.imooc.com//60c01dd6000160ab03900284.jpg

查看完整回答
反对 回复 2021-06-09
  • 1 回答
  • 0 关注
  • 230 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号