Python TypeError:barh()为参数';获取了多个值;宽度';

Python TypeError:barh()为参数';获取了多个值;宽度';,python,matplotlib,Python,Matplotlib,我正在尝试制作一个图表,它以前是垂直的。。。我正努力使它水平。发生的情况是,我得到了一个错误: TypeError:barh()为参数“width”获取了多个值 有人能帮忙吗 barWidth = 1 plt.barh(r, bars1, color='#7f6d5f', edgecolor='white', width=barWidth, label="Lasso") plt.barh(r, bars2, bottom=bars1, color='#557f2d', edgecolor='wh

我正在尝试制作一个图表,它以前是垂直的。。。我正努力使它水平。发生的情况是,我得到了一个错误:

TypeError:barh()为参数“width”获取了多个值

有人能帮忙吗

barWidth = 1
plt.barh(r, bars1, color='#7f6d5f', edgecolor='white', width=barWidth, label="Lasso")
plt.barh(r, bars2, bottom=bars1, color='#557f2d', edgecolor='white', width=barWidth, label="Random Forest")
plt.barh(r, bars3, bottom=bars, color='#2d7f5e', edgecolor='white', width=barWidth, label="Decision Tree")

有几件事不对:

  • 您不能为水平条指定宽度,您已经使用第二个参数
    barh
    设置了宽度;您需要设置高度
  • 同样,没有底部,需要设置左侧
  • 最后,为了使所有东西都处于良好的位置,对于第三个条形图,您需要前两个条形图的总和:
    left=bars1+bars2
    (或者对累积宽度使用单独的变量)
一些示例代码显示了它的工作原理:

从matplotlib导入pyplot作为plt
将numpy作为np导入
N=5
r=范围(N)
bars1=np.随机二项(20.7,N)
bars2=np.随机二项(20.5,N)
bars3=np.随机二项(20,.4,N)
颜色=['7f6d5f'、'557f2d'、'2d7f5e']
标签=[“套索”、“随机森林”、“决策树”]
条宽=1
左=0
对于条、列、zip标签([bars1、bars2、bars3],颜色、标签):
plt.barh(r,条,左=左,颜色=柱,边颜色=白色,高度=条宽,标签=标签)
左+=条
plt.legend()
plt.ylim(-0.5,透镜(条形)-0.5)
plt.show()

有几件事不对:

  • 您不能为水平条指定宽度,您已经使用第二个参数
    barh
    设置了宽度;您需要设置高度
  • 同样,没有底部,需要设置左侧
  • 最后,为了使所有东西都处于良好的位置,对于第三个条形图,您需要前两个条形图的总和:
    left=bars1+bars2
    (或者对累积宽度使用单独的变量)
一些示例代码显示了它的工作原理:

从matplotlib导入pyplot作为plt
将numpy作为np导入
N=5
r=范围(N)
bars1=np.随机二项(20.7,N)
bars2=np.随机二项(20.5,N)
bars3=np.随机二项(20,.4,N)
颜色=['7f6d5f'、'557f2d'、'2d7f5e']
标签=[“套索”、“随机森林”、“决策树”]
条宽=1
左=0
对于条、列、zip标签([bars1、bars2、bars3],颜色、标签):
plt.barh(r,条,左=左,颜色=柱,边颜色=白色,高度=条宽,标签=标签)
左+=条
plt.legend()
plt.ylim(-0.5,透镜(条形)-0.5)
plt.show()

您能发布完整的堆栈跟踪吗?还有一个会很好。你能发布完整的堆栈跟踪吗?还有一个会很好。