2014-11-03 100 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

相关问题