Numpy 绘制43个不同类的频率的一种直观方法

Numpy 绘制43个不同类的频率的一种直观方法,numpy,matplotlib,machine-learning,Numpy,Matplotlib,Machine Learning,我根据训练集中每个班级的频率创建了以下直方图 每个类的标签太长,类似于 Speed limit (20km/h) 我可以把每个标签都放在吧台上吗?可能是这样的 要将其更改为水平条形图,请执行以下操作: 也许是这样的 要将其更改为水平条形图,请执行以下操作: 你可以考虑把这个分成两个问题,一个似乎是我如何标记一个直方图(改变情节大小等),而第二个是如何添加一个传说。你也可以考虑扩大对第二个问题的解释,因为我猜你会问什么。因为它似乎是一个基于概率密度到精确水平的三组相关性的度量-我可以完

我根据训练集中每个班级的频率创建了以下直方图

每个类的标签太长,类似于

Speed limit (20km/h)

我可以把每个标签都放在吧台上吗?

可能是这样的

要将其更改为水平条形图,请执行以下操作:


也许是这样的

要将其更改为水平条形图,请执行以下操作:


你可以考虑把这个分成两个问题,一个似乎是我如何标记一个直方图(改变情节大小等),而第二个是如何添加一个传说。你也可以考虑扩大对第二个问题的解释,因为我猜你会问什么。因为它似乎是一个基于概率密度到精确水平的三组相关性的度量-我可以完全关闭-这将需要更多的传说,然后轴标签。@ JGrimWELL还创建了第二个问题,你可以考虑把它分成两个问题,因为一个似乎是我如何标记直方图。(更改绘图大小等)第二个是我如何添加一个传说。你也可以考虑扩展第二个解释,因为我猜你在那里问什么。因为它似乎是一个基于概率密度到精确水平的三个组的相关性的度量-并且我可以完全关闭-这将需要更多的传说,然后是轴实验室。el.@JGreenwell还提出了第二个问题,什么是条形宽度=ax.bar(xs,ys,width,color='k',alpha=0.3)?nvm使用了0.5,看起来不错!回答得很好。我现在正在努力把它变成一个条形。如果你也能加上这个,我会很高兴的!条形宽度=ax.bar(xs,ys,width,color='k',alpha=0.3)nvm使用了0.5,看起来不错!回答得很好。我现在正在努力让它成为一个酒吧。如果你也能加上这一点,我将不胜感激!
import numpy as np
import matplotlib.pyplot as plt

N=5
xlabel = ["Speed limit ("+str(i)+"km/h)" for i in range(0,N)]
xs = np.arange(0,7,1.5)
ys = [8,6,10,7,9]
width = 0.3*np.ones(N)

fig, ax = plt.subplots()
bars = ax.bar(xs, ys, width, color='k',alpha=0.3)
plt.xticks(xs, xlabel,rotation=270)

for i,bar in enumerate(bars):
    height = bar.get_height()
    ax.text(bar.get_x() + bar.get_width()/2., 0.1*height,
                '%s' % xlabel[i],rotation=90,ha='center', va='bottom')

plt.show()
import numpy as np
import matplotlib.pyplot as plt

N = 5
xlabel = ["Speed limit ("+str(i)+"km/h)" for i in range(0,5)]
xs = np.arange(0,5)/2
ys = [8,6,10,7,9]
width = 0.3*np.ones(N)

fig, ax = plt.subplots()
bars = ax.barh(xs, ys, width, color='k',alpha=0.3)
plt.xticks([])

for i,bar in enumerate(bars):
    height = bar.get_height()
    ax.text(bar.get_x()+3, bar.get_y()+bar.get_height()/3,
                '%s' % xlabel[i],rotation=0,ha='center', va='bottom')
plt.tight_layout()
plt.show()