不明白为什么matplotlib条宽度不是常数

2024-06-16 14:44:01 发布

您现在位置:Python中文网/ 问答频道 /正文

嗨,我想已经有很多关于这个的帖子了。但我真的不明白发生了什么。根据其他堆栈溢出问题,我猜测条形图宽度不恒定的原因是“非线性轴”

我真的不明白为什么这会导致matplotlib条形图宽度不相同:

# Initialize Data Frame
df = pd.DataFrame({r'$l$': range(1,4)}, index = range(1, 4))

# Add other stuff
df[r'Frequency (emitted photon) / $\frac{k_B \Theta_R}{h}$'] = (df[r'$l$'] * (df[r'$l$'] + 1) - 
                                                                (df[r'$l$'] - 2)*(df[r'$l$'] - 1))

df[r'Probabilities $p(l)$'] = (np.exp((-df[r'$l$']/300) * (df[r'$l$'] + 1)) / 
                              (((2*df[r'$l$'] + 1) * np.exp((-df[r'$l$']/300) * (df[r'$l$'] + 1))) + 
                              ((2 * df[r'$l$'] - 1) * np.exp(-((df[r'$l$'] - 2)/300) * (df[r'$l$'] - 1)))
                              ))

# Graph Settings
fig, axes = plt.subplots(nrows = 1, ncols = 1, figsize = (16,8))


axes.bar(df[r'Frequency (emitted photon) / $\frac{k_B \Theta_R}{h}$'],
         df[r'Probabilities $p(l)$'], label = 'Probability vs Frequency', color = 'red', width = 0.1)

# Graph Settings
axes.set_title('Probabilities against frequency(emitted photon)', fontsize = 20)
axes.xaxis.set_ticks(range(0, 13))


# Display Graph
plt.show()

尽管我已经将宽度设置为0.1,但条形图还是非常难看

enter image description here

为什么第一根横杆的宽度可以,但其余的太胖了?我如何纠正它,使所有宽度相同


Tags: df宽度settingsnprangepltgraph条形图