matplotlib 如何在python中将一个二维数组转换为两个不同的一维数组

z9ju0rcb  于 2022-11-15  发布在  Python
关注(0)|答案(2)|浏览(166)

我正在尝试转换一个二维数组:

{4: 6, 6: 2, 1: 2, 3: 7, 5: 4, 9: 1, 2: 3, 7: 2, 8: 1}

转换为两个不同的一维数组,如下所示:

arr1 = [1, 2, 3, 4, 5, 6, 7, 8, 9] 
arr2 = [2, 3, 7, 6, 4, 2, 2, 1, 1]

要使用matplotlib进行绘图,arr1作为y,arr2作为x。
我该怎么做?
PS:抱歉我的英语不好。

fnx2tebb

fnx2tebb1#

您可以执行以下操作:

import matplotlib.pylab as plt
d = {4: 6, 6: 2, 1: 2, 3: 7, 5: 4, 9: 1, 2: 3, 7: 2, 8: 1}
sorted_list = sorted(d.items()) # sorted by key, return a list of tuples
x, y = zip(*sorted_list) # unpack a list of pairs into two tuples

plt.plot(x, y)
plt.show()

输出:

kqhtkvqz

kqhtkvqz2#

您可以使用dict.itemszip

d = {4: 6, 6: 2, 1: 2, 3: 7, 5: 4, 9: 1, 2: 3, 7: 2, 8: 1}

arr1, arr2 = map(list, zip(*d.items()))

输出:

arr1
# [1, 2, 3, 4, 5, 6, 7, 8, 9] 

arr2
# [2, 3, 7, 6, 4, 2, 2, 1, 1]

如果要绘图,可以使用pandas.Series

import pandas as pd

pd.Series(d).sort_index().plot()

# or
# import matplotlib .pyplot as plt
# plt.plot(pd.Series(d).sort_index())

输出:

相关问题