【发布时间】:2017-12-08 03:15:24
【问题描述】:
我已经在很多地方寻找了如何做到这一点,但无法准确找到我需要的东西/如果这可能的话,也找不到验证。
我在 y 轴上有一个高度的二维直方图(由 rdata1 给出),在 x 轴上有一个强度(由强度给出)的直方图。直方图绘制得很好,但我想缩放颜色条而不是将其标准化。
我已经定义了一个颜色图,我只想使用我绘制的数据对其进行缩放。
我想缩放数据,以便颜色条(当前从 0-1 运行)从 0 缩放到(bin 中的点数)/(len(时间))。这样我就可以找出某个点在某个高度的某个强度箱中的概率。我不确定是通过制作第二个直方图(我不会绘制)并从中导出最大/最小值来缩放颜色条,还是使用多个 for 循环和列表将值附加到每个的 bin 中来做到这一点高度范围,然后最大/最小这些箱中的值的数量。
代码附在下面:
import numpy as np
import file_reader as fr
import matplotlib.pyplot as plt
from matplotlib.colors import LinearSegmentedColormap
import matplotlib as mpl
time = [0.01649999991059303, 0.02584999985992908]
rdata = [-600.020751953125, -570.04150390625, -540.062255859375, -510.0830078125, -480.1037902832031, -450.1245422363281, -420.1452941894531, -390.1660461425781, -360.1867980957031, -330.2075500488281]
intensity = [[-37.32464981079102, -38.3233528137207], [-37.70231628417969, -38.05134201049805], [-38.27889251708984, -38.82979583740234], [-28.01022720336914, -27.68825912475586], [-8.408446311950684, -8.440451622009277], [-8.749446868896484, -8.750232696533203], [-9.431790351867676, -9.41820240020752], [-10.09048461914062, -10.23848724365234], [-10.84317588806152, -10.84869194030762], [-11.61933135986328, -11.67543029785156]]
range_bins = np.linspace(rdata[0],rdata[-1],(len(rdata)+1))
intensity_bins = np.linspace(-70,30,100)
intensity = np.array(intensity).ravel()
rdata1 = np.repeat(rdata,len(time))
cdict = {'red': ((0.0, 1.0, 1.0),
(0.25, 0.0, 0.0),
(0.55, 0.35, 0.35),
(0.75, 0.75, 0.75),
(1.0, 1.0, 1.0)),
'green': ((0.0, 1.0, 1.0),
(0.25, 0.1, 0.1),
(0.55, 0.6, 0.6),
(0.75, 0.8, 0.8),
(1.0, 0.0, 0.0)),
'blue': ((0.0, 1.0, 1.0),
(0.25, 1.0, 1.0),
(0.55, 0.2, 0.2),
(0.75, 0.1, 0.1),
(1.0, 0.0, 0.0))
}
radar_map = LinearSegmentedColormap('radar_map', cdict)
H, range_bins, intensity_bins = np.histogram2d(rdata1,intensity,bins=(range_bins,intensity_bins))
fig = plt.figure()
X,Y = np.meshgrid(intensity_bins,range_bins)
plt.pcolormesh(X,Y,H, cmap=radar_map)
cax = fig.add_axes([0.95, 0.2, 0.02, 0.6])
cb = mpl.colorbar.ColorbarBase(cax, cmap=radar_map, spacing='proportional')
对此的任何帮助将不胜感激。抱歉,这篇文章太长了。
【问题讨论】:
-
您能否提供该问题的minimal reproducible example (这样就无需对需要将示例数据放置在代码中的位置进行逆向工程)。
-
我已经编辑了我的帖子,希望能进一步阐明我的问题
标签: python-3.x matplotlib histogram colorbar