【问题标题】:Problem in horizontal stacked bar graph in matplotlibmatplotlib中水平堆积条形图的问题
【发布时间】:2020-06-05 16:16:35
【问题描述】:

下面是我创建水平堆叠条形图的代码:

import matplotlib.pyplot as plt

year = [2014]  
tutorial_public = [30]  
tutorial_premium = [10]
tutorial_premiumx = [20] 

fig, axs = plt.subplots(1)

axs.barh(year, tutorial_premium, color="yellow")  
axs.barh(year, tutorial_public, left=tutorial_premium, color="red")
axs.barh(year, tutorial_premiumx, left=tutorial_public, color="blue")

它会生成以下图像:

我觉得很荒谬的是红色部分的长度只有 20,但它应该是 30,因为 tutorial_public = [30] 。我在这里做错了什么?

【问题讨论】:

    标签: python python-3.x matplotlib bar-chart stacked-chart


    【解决方案1】:

    红色条的宽度 30,你的问题是你用蓝色条隐藏了条的一部分(通过注释代码的最后一行来尝试)

    您需要调整第三个barhleft= 参数(请注意,我已将您的列表转换为numpy 数组以方便算术运算):

    import matplotlib.pyplot as plt
    
    year = [2014]  
    tutorial_public = np.array([30])
    tutorial_premium = np.array([10])
    tutorial_premiumx = np.array([20])
    
    fig, axs = plt.subplots(1)
    
    axs.barh(year, tutorial_premium, color="yellow")  
    axs.barh(year, tutorial_public, left=tutorial_premium, color="red")
    axs.barh(year, tutorial_premiumx, left=tutorial_premium+tutorial_public, color="blue")
    

    【讨论】:

    • 你让我免于头疼!
    猜你喜欢
    • 2013-05-15
    • 2018-07-22
    • 2020-04-10
    • 1970-01-01
    • 1970-01-01
    • 2018-01-17
    • 2019-11-28
    • 1970-01-01
    • 2021-02-27
    相关资源
    最近更新 更多