2024-04-24 08:33:20 发布
网友
我有一份清单如下
import random list_of_list=[] for i in range(1000): sub_list=[random.randint(0, 10) for iter in range(10)] list_of_list.append(sub_list)
我可以用历史图绘制上述列表的任何一个子列表,如下所示
plt.hist(list_of_list[10])
我是否可以用直方图或其他类似的方式来绘制整个列表
传递列表列表会将每个子列表视为一个单独的组,按颜色区分
plt.hist(list_of_list)
3个子列表示例:
如果需要,还可以将子列表展平为单个列表,以便将它们视为同一批:
import itertools merged = list(itertools.chain(*list_of_list)) plt.hist(merged)
输出:
你可以把它画成
plt.hist([elt for lst in list_of_list for elt in lst])
你会注意到最后一个箱子的高度是其余箱子的两倍。与类似的函数不同,random.randint(0, 10)生成从0到10的值。由于四舍五入,两个9和10最终都在同一个箱子中。您可以使用plt.hist(..., bins=11)创建11个箱子
random.randint(0, 10)
0
10
9
plt.hist(..., bins=11)
还请注意,在处理大型数值数据列表时,使用numpy库总是更容易、更快。它的语法一开始可能看起来很奇怪,但你很快就会习惯它。例如,要从2d列表创建1d列表,命令将为np.array(list_of_list).ravel()
np.array(list_of_list).ravel()
传递列表列表会将每个子列表视为一个单独的组,按颜色区分
3个子列表示例:
如果需要,还可以将子列表展平为单个列表,以便将它们视为同一批:
输出:
你可以把它画成
你会注意到最后一个箱子的高度是其余箱子的两倍。与类似的函数不同,
random.randint(0, 10)
生成从0
到10
的值。由于四舍五入,两个9
和10
最终都在同一个箱子中。您可以使用plt.hist(..., bins=11)
创建11个箱子还请注意,在处理大型数值数据列表时,使用numpy库总是更容易、更快。它的语法一开始可能看起来很奇怪,但你很快就会习惯它。例如,要从2d列表创建1d列表,命令将为
np.array(list_of_list).ravel()
相关问题 更多 >
编程相关推荐