【问题标题】:plot histogram from lists of elements in python从python中的元素列表绘制直方图
【发布时间】:2019-04-09 10:29:22
【问题描述】:

我有两个列表,它们本身由列表组成。我想使用这些列表绘制直方图。

以下是列表:

param_main_list

[['Para_length', 'Question1', 'Answer1', 'Question2', 'Answer2'], 
['Para_length', 'Question1', 'Answer1', 'Question2', 'Answer2', 
'Question3', 'Answer3', 'Question4', 'Answer4', 'Question5', 'Answer5'], 
['Para_length', 'Question1', 'Answer1', 'Question2', 'Answer2', 
'Question3', 'Answer3', 'Question4', 'Answer4', 'Question5', 'Answer5'], 
['Para_length', 'Question1', 'Answer1', 'Question2', 'Answer2', 
'Question3', 'Answer3', 'Question4', 'Answer4', 'Question5', 'Answer5']]

主列表:

[1107, 64, 129, 64, 67]
[1223, 34, 129, 62, 244, 56, 136, 48, 128, 43, 180]
[1345, 47, 96, 63, 241, 79, 97, 82, 108, 62, 134]
[648, 35, 111, 78, 131, 56, 86, 28, 47, 64, 151]
[[1107, 64, 129, 64, 67], [1223, 34, 129, 62, 244, 56, 136, 48, 128, 43, 
180], [1345, 47, 96, 63, 241, 79, 97, 82, 108, 62, 134], [648, 35, 111, 
78, 131, 56, 86, 28, 47, 64, 151]]

考虑这些直方图与列表一一对应,即 param_main_list 的第一个元素和 ma​​in_list 的第一个元素

我可以打印单个直方图,但我希望为每种情况分别打印多个直方图。我生成的如下

上面的代码是:

for index in range(0,len(main_list)):     
    xpos = np.arange(len(main_list[index]))   
    plt.xticks(xpos,param_main_list[index])
    plt.bar(param_main_list[index],main_list[index])
    plt.hist() 

这不是重复的,我已经检查了所有解决方案,请帮助我。

【问题讨论】:

标签: python list bar-chart histogram


【解决方案1】:

遍历subplot的轴

%matplotlib inline
import matplotlib.pyplot as plt
x=[['Para_length', 'Question1', 'Answer1', 'Question2', 'Answer2'], 
['Para_length', 'Question1', 'Answer1', 'Question2', 'Answer2','Question3', 'Answer3', 'Question4', 'Answer4', 'Question5', 'Answer5'], 
['Para_length', 'Question1', 'Answer1', 'Question2', 'Answer2','Question3', 'Answer3', 'Question4', 'Answer4', 'Question5', 'Answer5'], 
['Para_length', 'Question1', 'Answer1', 'Question2', 'Answer2','Question3', 'Answer3', 'Question4', 'Answer4', 'Question5', 'Answer5']]  

y=[[1107, 64, 129, 64, 67], 
[1223, 34, 129, 62, 244, 56, 136, 48, 128, 43, 180], 
[1345, 47, 96, 63, 241, 79, 97, 82, 108, 62, 134], 
[648, 35, 111, 78, 131, 56, 86, 28, 47, 64, 151]]


fig, axs = plt.subplots(1,4)

for i,ax in enumerate(axs):
    ax.bar(x[i],y[i])
    ax.set_xticklabels(x[i], rotation=90)


plt.show()

【讨论】:

    猜你喜欢
    • 2023-01-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-07-18
    • 2018-05-23
    • 2017-12-18
    • 1970-01-01
    • 2014-06-28
    相关资源
    最近更新 更多