2014-11-03 101 views
-2

我有一組數據是這樣如何更改for循環下的標記形狀和顏色?

x=[1, 2, 3, 4, 5, 6, 7, 8, 9, 10] 
y=[5, 10, 15, 20, 25, 5, 10, 15, 20, 25,] 

我想要做散點圖與x

  • 第5種元素和y一個標誌形狀,增加顏色從藍色到紅色
  • 接下來的5個元素xy,下一個標記和顏色與第一個相同。

事實上,我有x與1000個元素和y與10x100元素。我想繪製(10組分散點)10個不同的標記形狀和所有的起始顏色從藍色到紅色。

舉例:

所有的
x=[1, 2, 3, 4, 5, 6, 7, 8, 9, 10] 
y=[5, 10, 15, 20, 25, 5, 10, 15, 20, 25,] 
c=['o', '*'] 
z=[.1, .2, .3, .4, .5, .6, .7, .8, .9, .99] 
plt.scatter(X, Y, marker=x, c=z) 
+0

散佈目前不播送完了標記。如果你想要N個不同的標記形狀,那麼你需要編寫一個循環並調用'scatter' N次。 – tacaswell 2014-11-03 16:58:20

回答

1

首先,你必須在你的代碼中的一些問題,變量是大寫和小寫然後,但Python是區分大小寫的。

選項只允許一個字符,所以你不能傳遞它們的列表。相反,你需要循環和改變每一件你想要的東西。與您的數據一個小例子如下

import matplotlib.pyplot as plt 

x=[1, 2, 3, 4, 5, 6, 7, 8, 9, 10] 
y=[5, 10, 15, 20, 25, 5, 10, 15, 20, 25,] 
marker= ['o', 's'] 
z=[.1, .3, .5, .7, .99] 

n = 5 
for k in range(2):  
    plt.scatter(x[k*n:(k + 1)*n], y[k*n:(k + 1)*n], s=100, 
        marker=marker[k], c=z) 

這給作爲結果 enter image description here

相關問題