2016-02-10 61 views
2

這是我的數據和圖形我想產生:如何使用變量數參數pyplot.plot?

from numpy import array 
from os.path import expanduser 
import matplotlib.pyplot as plt 
sns.set(style="darkgrid") 

data = [array([8, 4, 9, 6, 2]), array([5, 4, 4, 1, 2]), array([4, 3, 1, 5, 6]), array([8, 3, 5, 6, 4])] 

for d in data: 
    plt.plot(d) 

# plt.savefig(expanduser("~/Documents/rural_juror.pdf")) 

enter image description here

因爲我想繪製數那些在同一seaborn facetgrid我不能使用一個循環,但必須在做一條線,像這樣:

plt.plot(*data) 
# produces same result as 
# plt.plot(data[0], data[1], data[2], data[3]) 

然而,這並不工作,但產生的圖形像這樣:

enter image description here

我猜這與我們的論點有關,其類型爲data, looks, data, looks...,但我該如何解決這個問題?

回答

4

是的,如果你想用一行代碼來完成,你需要給出xy的值。你可以做這樣的:

import numpy as np 
x = np.arange(5) 
data = [x, array([8, 4, 9, 6, 2]), 
     x, array([5, 4, 4, 1, 2]), 
     x, array([4, 3, 1, 5, 6]), 
     x, array([8, 3, 5, 6, 4])] 
plt.plot(*data) 
+0

啊,它是X和Y,而不是x和AES。謝謝!相關文檔在這裏:http://matplotlib.org/api/pyplot_api.html#matplotlib.pyplot.plot如果我發現早些時候我不會問。再次感謝。 –

1

對於您可以使用列表理解這樣的一條線循環語句:

​​

linesmatplotlib.lines.Line2D對象的列表。

0

我不能測試這個沒有安裝seaborn,但它看起來像FacetGrid使用DataFrame是數據輸入。 http://stanford.edu/~mwaskom/software/seaborn/generated/seaborn.FacetGrid.html

所以這應該工作

import pandas as pd 
data = [array([8, 4, 9, 6, 2]), array([5, 4, 4, 1, 2]), array([4, 3, 1, 5, 6]), array([8, 3, 5, 6, 4])] 

df = pd.DataFrame(data) 
df.transpose() #not sure if you need it transposed 
g = sns.FacetGrid(df) 
相關問題