簡體   English   中英

Python - 如何使用字典正確繪制折線圖?

[英]Python - How can I plot a line graph properly with a dictionary?

我試圖用 Python 繪制一個折線圖來顯示 Jupyter Notebook 中字典每個鍵的趨勢。 這是我在 k_rmse_values 變量中的內容,如下所示:

k_rmse_values = { '孔':{1:8423.759328233446,3:6501.928933614838,5:6807.187615513473,7:6900.29659028346,9:7134.8868708101645}, '城市MPG':{1:4265.365592771621,3:3865.0178306330113,5:3720.409335758634,7: 3819.183283405616,9:4219.677972675927},'壓縮率:{1:7016.906657495168,3:7319.354017489066,5:6301.624922763969,7:6133.006310754547,9:6417.253959732598}, '路邊 - 重':{1:3950.9888180049306,3:4201.343428000144, 5:4047.052502155118,7:3842.0974736649846,9:3943.9478256384205}, '發動機尺寸':{1:2853.7338453331627,3:2793.6254775629623,5:3123.320055069605,7:2941.73029681235,9:2931.996240628853}, '高度':{1:6330.178232877807, 3:7049.500497198366,5:6869.570862695864,7:6738.641089739572,9:6344.062937760911}, '高速公路-MPG':{1:4826.0580187146525,3:3510.253629329685,5:3379.2250123364083,7:4044.271135312068,9:4462.027046251678}, '馬力':{ 1: 3623.6389886411143, 3: 4294.825669466819, 5: 4778.254807521257, 7: 4730.5387015 14935,9:4662.8601512508885}, '長度':{1:4952.798701744297,3:5403.624431188139,5:5500.731909846179,7:5103.4515274528885,9:4471.077661709427}, '歸一化后損失':{1:9604.929081466453,3:7494.820436511842,5: 6391.912634697067,7:6699.853883298577,9:6861.6389834002875}, '峰RPM':{1:8041.2366213164005,3:7502.080095843049,5:6521.863037752326,7:6869.602542315512,9:6884.533017667794}, '撫摸':{1:10330.231237489314,3: 8947.585146097614,5:6973.912792744113,7:7266.333478250421,9:7026.017456146411}, '軸距':{1:2797.4144312203725,3:3392.8627620671928,5:4238.25624378706,7:4456.687059524217,9:4426.032222634904}, '寬度':{1: 2849.2691940215127, 3: 4076.59327053035, 5: 3979.9751617315405, 7: 3845.3326184519606, 9: 36623}2}0

當我使用此代碼進行繪圖時

for k,v in k_rmse_values.items():
x = list(v.keys())
y = list(v.values())

plt.plot(x,y)
plt.xlabel('k value')
plt.ylabel('RMSE')

它沒有按順序從 1 到 9 繪制; 它給出了這個圖在此處輸入圖片說明

它以 k 值順序 1, 3, 9 , 5, 7 繪制

我已經在這個問題上花費了幾個小時,但仍然無法找到解決方法。 您對此的幫助將不勝感激。

一種解決方案是對鍵進行排序並獲取匹配的值:

for k,v in k_rmse_values.items():
  xs = list(v.keys()).sort()
  ys = [v[x] for x in xs]

# Note I renamed these arrays so following uses should be changed accordingly

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM