是否有必要使用 plt.bar() 使标签在日志直方图中居中?
Is it necessary to use a plt.bar() to center labels in a log histogram?
我一直在努力将标签居中放置在这个对数图中的直方图条下。具体来说,我希望第一个柱形超过“1”,因为这是第一个值。
所有在线解决方案似乎都建议使用 plt.bar() 函数,我还没有正确处理对数比例和 bin 大小。我是否需要使用条形图从头开始?任何其他修复此问题以使直方图居中的技巧?数据的 link 在这里:https://drive.google.com/file/d/1USxTNcxveKoM1X_-TTn6ZX4GcUdRm2a7/view?usp=sharing。代码和当前图如下:
import pandas as pd
import matplotlib.pyplot as plt
MJ = pd.read_excel('MJ1a_data.xlsx')
hist = plt.hist(x = MJ.MJ1a,
bins=np.logspace(start=np.log10(1), stop=np.log10(10000), num=25), rwidth = .7)
plt.gca().set_xscale('log')
plt.xticks(ticks = [1,10,100,1000,10000],labels = [1,10,100,1000,10000], horizontalalignment = 'center', fontname = "Arial", fontsize = 14, fontweight = 'medium')
plt.yticks(fontname = "Arial", fontsize = 14, fontweight = 'medium')
plt.xlabel("Total Lifetime MJ Use", fontname = 'Arial', fontsize = 14)
plt.ylabel("Frequency", fontname = 'Arial', fontsize = 14)
直方图和条形图是针对不同情况的不同绘图类型。直方图用于显示连续变量的近似分布,而条形图用于比较几个类别的频率。
由于您的 x 变量是连续的,因此直方图绝对是条形图的正确选择。但是现在您显然正在尝试使直方图看起来像条形图。我强烈建议不要这样做,因为它会产生误导。
具体而言,不要将宽度设置为较低的值。 “条形”应该在直方图中相互接触,因为它们显示指定箱的密度,并且箱之间没有间隙。 1
应该 而不是 在第一个“条”下方居中,因为它是第一个 bin 的左边界。将其居中意味着它是第一个 bin 内的平均值。
我一直在努力将标签居中放置在这个对数图中的直方图条下。具体来说,我希望第一个柱形超过“1”,因为这是第一个值。
所有在线解决方案似乎都建议使用 plt.bar() 函数,我还没有正确处理对数比例和 bin 大小。我是否需要使用条形图从头开始?任何其他修复此问题以使直方图居中的技巧?数据的 link 在这里:https://drive.google.com/file/d/1USxTNcxveKoM1X_-TTn6ZX4GcUdRm2a7/view?usp=sharing。代码和当前图如下:
import pandas as pd
import matplotlib.pyplot as plt
MJ = pd.read_excel('MJ1a_data.xlsx')
hist = plt.hist(x = MJ.MJ1a,
bins=np.logspace(start=np.log10(1), stop=np.log10(10000), num=25), rwidth = .7)
plt.gca().set_xscale('log')
plt.xticks(ticks = [1,10,100,1000,10000],labels = [1,10,100,1000,10000], horizontalalignment = 'center', fontname = "Arial", fontsize = 14, fontweight = 'medium')
plt.yticks(fontname = "Arial", fontsize = 14, fontweight = 'medium')
plt.xlabel("Total Lifetime MJ Use", fontname = 'Arial', fontsize = 14)
plt.ylabel("Frequency", fontname = 'Arial', fontsize = 14)
直方图和条形图是针对不同情况的不同绘图类型。直方图用于显示连续变量的近似分布,而条形图用于比较几个类别的频率。
由于您的 x 变量是连续的,因此直方图绝对是条形图的正确选择。但是现在您显然正在尝试使直方图看起来像条形图。我强烈建议不要这样做,因为它会产生误导。
具体而言,不要将宽度设置为较低的值。 “条形”应该在直方图中相互接触,因为它们显示指定箱的密度,并且箱之间没有间隙。 1
应该 而不是 在第一个“条”下方居中,因为它是第一个 bin 的左边界。将其居中意味着它是第一个 bin 内的平均值。