我在 python 中有一個字典,如下所示:
test={'fg':['1','2','3','4','5'],
'values':[np.array([5,6,7,8]),np.array([2,3,4,5]),np.array([6,5,4,3]),np.array([4,5,6,7]),np.array([1,2,3,4])],
我想用這本字典做 5 個重疊的線圖;每個 fg 值一個,將 'values' 鍵中相應項中的值陣列繪制在每個 'values' 陣列中的單元數上。
因此,第一個折線圖將用于 'fg':'1',并將 5、6、7、8 繪制為 y 值超過 1、2、3、4(陣列中的單元數)作為 x 值. 第二個折線圖將用于“fg”:“2”,并將 2,3,4,5 繪制為 y 值,再次將 1,2,3,4 繪制為 x 值。如果我能進一步澄清,請告訴我。
我不太擅長用這種格式繪制字典,所以我什至不知道從哪里開始。任何建議將不勝感激!
uj5u.com熱心網友回復:
這很簡單。我們可以遍歷values字典中的欄位并繪制每個條目:
# import libraries
import numpy as np
import matplotlib.pyplot as plt
# define your data
test={'fg':['1','2','3','4','5'],
'values':[np.array([5,6,7,8]),np.array([2,3,4,5]),np.array([6,5,4,3]),np.array([4,5,6,7]),np.array([1,2,3,4])]}
for values in test['values']: # iterate over all "values" entries
x = np.arange(1, values.shape[0] 1) # set up x-vector
plt.plot(x, values, '-') # plot
plt.legend(test['fg']) # optionally add legend
plt.show() # create plo # create plot
uj5u.com熱心網友回復:
you can use zip:
for i, j in zip(test['fg'], test['values']):
plt.plot(np.arange(len(j)) 1, j)
plt.title(i)
uj5u.com熱心網友回復:
我想出同時使用 zip 方法進行test['fg']迭代test['values']。嘗試像這樣使用 zip() 方法:
import numpy as np
test={'fg':
['1','2','3','4','5'],
'values':[np.array([5,6,7,8]),np.array([2,3,4,5]),np.array([6,5,4,3]),np.array([4,5,6,7]),np.array([1,2,3,4])],
for fgNum, valArray in zip(test['fg'],test['values']):
# do your matplotlib stuff here
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/426272.html
標籤:Python 数组 麻木的 字典 matplotlib
