【问题标题】:plot a graphic with two dimensions using matlib.plot使用 matlibplot 绘制具有二维的图形
【发布时间】:2021-04-09 07:05:56
【问题描述】:

我需要像这样在 python 中使用 matlib.plot 绘制图形:

实际上我使用的是绘制所有条形图的代码

bars = ('Optimum CPLEX', 'eUCB', 'ONETS', 'e-greedy')
    y_pos = [1, 3, 5, 7]
    y_pos_2 = [2, 4, 6, 8]

    plt.ylabel('Average Reward \u03B7_i')
    plt.suptitle('Optimal Model versus Heuristics')
    name = 'grafics/11_reward_utilization.png'
         
    # Create bars
    plt.bar(y_pos, reward, color=['blue', 'blue', 'blue', 'blue'])
    plt.bar(y_pos_2, utilization, color=['yellow', 'yellow', 'yellow', 'yellow'])
         
    # Create names on the x-axis
    plt.xticks(y_pos, bars)
         
    # Show graphic
    plt.savefig(name, transparent = True)
    plt.show()

但结果我收到了一个包含所有条形但尺寸相同的图形,如下所示:

有人知道我如何在 y 轴上绘制这两个不同维度数据的图形吗?

谢谢。

【问题讨论】:

    标签: python


    【解决方案1】:

    你定义rewardutilization了吗???

    您使用这些定义的示例对我有用:

    import matplotlib.pyplot as plt
    
    bars = ('Optimum CPLEX', 'eUCB', 'ONETS', 'e-greedy')
    y_pos = [1, 3, 5, 7]
    reward = [1,2,3,4]
    
    y_pos_2 = [2, 4, 6, 8]
    utilization = [4,3,2,1]
    
    plt.ylabel('Average Reward \u03B7_i')
    plt.suptitle('Optimal Model versus Heuristics')
    name = '11_reward_utilization.png'
    
    # Create bars
    plt.bar(y_pos, reward, color=['blue', 'blue', 'blue', 'blue'])
    plt.bar(y_pos_2, utilization, color=['yellow', 'yellow', 'yellow', 'yellow'])
    
    # Create names on the x-axis
    plt.xticks(y_pos, bars)
    # Show graphic
    plt.savefig(name, transparent=True)
    plt.show()
    

    【讨论】:

    • 是的,我有。此代码有效,但在这种情况下,奖励和利用率之间的数据维度非常不同。这使得图形不太好阅读信息。如果您在图中观察到,黄色的利用率数据非常低。而且,在参考图中,我们在左侧有一个奖励比例,在右侧有一个使用比例。同一图形中 y 轴上的两个不同比例。这正是我想做的。
    • 也许这个article会提供一些帮助
    • 再来一个,可能有用link
    猜你喜欢
    • 1970-01-01
    • 2013-06-07
    • 2015-07-14
    • 2021-10-10
    • 2011-01-05
    • 2016-07-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多