use*_*817 4 python matplotlib histogram
我有一个运行良好的 matplotlib 直方图。
hist_bin_width = 4
on_hist = plt.hist(my_data,bins=range(-100, 200,hist_bin_width),alpha=.3,color='#6e9bd1',label='on')
Run Code Online (Sandbox Code Playgroud)
我想要做的就是按因子重新缩放,比如说,2。我不想改变 bin 宽度,或者改变 y 轴标签。我想获取所有 bin 中的计数(例如 bin 1 有 17 个计数)并乘以 2,这样 bin 1 现在有 34 个计数。
这可能吗?
谢谢你。
pyplot.hist的weights参数可用于使用如下因子对每个数据点进行加权
import matplotlib.pyplot as plt
import numpy as np; np.random.seed(42)
data = np.random.normal(50, 20, 10000)
factor = 2
hist_bin_width = 40
plt.hist(data, bins=range(-100, 200, hist_bin_width),
weights=factor*np.ones_like(data))
plt.show()
Run Code Online (Sandbox Code Playgroud)
因为这只是 y 轴的简单重新缩放,所以这一定是可能的。之所以出现问题,是因为 Matplotlib 的hist计算并绘制直方图,因此难以干预。但是,正如文档中还指出的,您可以使用该weights参数来“绘制已经分箱的数据的直方图”。您可以在第一步中使用 Numpy 的直方图函数对数据进行分箱。然后应用缩放因子很简单:
from matplotlib import pyplot
import numpy
numpy.random.seed(0)
data = numpy.random.normal(50, 20, 10000)
(counts, bins) = numpy.histogram(data, bins=range(101))
factor = 2
pyplot.hist(bins[:-1], bins, weights=factor*counts)
pyplot.show()
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7072 次 |
| 最近记录: |