Matplotlib 直方图,其中 bin 定义了 FLOATS 的范围并由它着色?
Matplotlib histogram where bins are defined range of FLOATS and colored by it?
我进行 RMSF 分析,结果我有浮点数列表(0.1、0.3 等),我想做一个直方图,其中包含定义的浮点数范围。然后我想让每个浮动范围都有相应的颜色。我试着用这个脚本的类比来做到这一点:
from MDAnalysis.analysis.rms import RMSF
import matplotlib.pyplot as plt
import numpy as np
fig, ax = plt.subplots()
data = rmsfer.rmsf
N, bins, patches = ax.hist(data, edgecolor='white', linewidth=1)
for i in np.arange(0.3,0.8):
patches[i].set_facecolor('navy')
for i in np.arange(0.8,1.3):
patches[i].set_facecolor('cyan')
for i in np.arange(1.3,1.8):
patches[i].set_facecolor('yellow')
for i in np.arange(1.8,2.3):
patches[i].set_facecolor('orange')
for i in np.arange(2.3,3.5):
patches[i].set_facecolor('red')
我知道浮点数有问题,并尝试用 numpy 和 np.arange 修复它,但当然对我来说并不容易,因为我是 python 的新手。有什么建议吗?
IIUC,您可能希望将 bins
传递给 ax.hist
:
fig,ax = plt.subplots()
N, bins, patches = ax.hist(data,bins=[0.3, 0.8,1.3,1.8,2.3,3.5],edgecolor='white')
for (p,c) in zip(patches, ['navy','cyan','yellow','orange','red']):
p.set_facecolor(c)
输出:
我进行 RMSF 分析,结果我有浮点数列表(0.1、0.3 等),我想做一个直方图,其中包含定义的浮点数范围。然后我想让每个浮动范围都有相应的颜色。我试着用这个脚本的类比来做到这一点:
from MDAnalysis.analysis.rms import RMSF
import matplotlib.pyplot as plt
import numpy as np
fig, ax = plt.subplots()
data = rmsfer.rmsf
N, bins, patches = ax.hist(data, edgecolor='white', linewidth=1)
for i in np.arange(0.3,0.8):
patches[i].set_facecolor('navy')
for i in np.arange(0.8,1.3):
patches[i].set_facecolor('cyan')
for i in np.arange(1.3,1.8):
patches[i].set_facecolor('yellow')
for i in np.arange(1.8,2.3):
patches[i].set_facecolor('orange')
for i in np.arange(2.3,3.5):
patches[i].set_facecolor('red')
我知道浮点数有问题,并尝试用 numpy 和 np.arange 修复它,但当然对我来说并不容易,因为我是 python 的新手。有什么建议吗?
IIUC,您可能希望将 bins
传递给 ax.hist
:
fig,ax = plt.subplots()
N, bins, patches = ax.hist(data,bins=[0.3, 0.8,1.3,1.8,2.3,3.5],edgecolor='white')
for (p,c) in zip(patches, ['navy','cyan','yellow','orange','red']):
p.set_facecolor(c)
输出: