【问题标题】:Matplotlib histogram where bins are defined range of FLOATS and colored by it?Matplotlib 直方图,其中 bin 定义了 FLOATS 的范围并由它着色?
【发布时间】:2020-04-27 18:00:55
【问题描述】:

我进行 RMSF 分析,结果我得到了浮点数列表(0.1、0.3 等),我想做一个直方图,其中定义了浮点数范围的 bin。然后我想让每个浮动范围都具有相应的颜色。我试图用这个脚本的类比来做到这一点:

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

我知道 float 存在问题,并尝试使用 numpy 和 np.arange 修复它,但当然这对我来说并不容易,因为我是 python 新手。有什么建议吗?

【问题讨论】:

    标签: python python-3.x numpy matplotlib histogram


    【解决方案1】:

    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)
    

    输出:

    【讨论】:

      猜你喜欢
      • 2019-01-09
      • 1970-01-01
      • 2023-03-26
      • 2018-04-09
      • 1970-01-01
      • 2022-01-20
      • 2011-10-22
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多