2016-04-18 131 views
0

我有一個生成動畫點的功能,這裏是導致問題的一部分:如何用matplotlib繪製不同顏色的動畫點?

dots = [dot() for i in range(N)] 

fig = plt.figure() 
ax = plt.axes(xlim=(0, 10), ylim=(0, 10)) 
d, = ax.plot([dot.x for dot in dots],[dot.y for dot in dots], 'ro', markersize=3)` 

如此,點是我的類的對象等點的名稱,它包含N個對象名單。每個點都以紅色標出。

我想要做的是繪製,例如,紅色的N-1點和藍色的點,可以使用命令ax.plot嗎?

感謝您的幫助

+0

你點幾乎分裂成兩個列表,使兩條獨立的線路與'plot',一個紅色,一個藍色的小點。 – roadrunner66

+0

謝謝你的工作 – Jkev

回答

0

是的,這是可能的。您需要將這些點分成兩個集合;有很多方法可以做到這一點;在這裏我選擇從列表中提取一個點。那麼您必須在同一個畫布上分別繪製每個集合。

import random 
import matplotlib.pyplot as plt 


class Dot(object): 
    def __init__(self, x, y): 
     self.x = x 
     self.y = y 

def get_random_dot(dots): 
    random.shuffle(dots) 
    return dots.pop() 

num_dots = 10 
dots = [Dot(random.random(), random.random()) for _ in range(num_dots)] 

fig = plt.figure() 
ax = plt.axes() 

selected_dot = get_random_dot(dots) 
d, = ax.plot([dot.x for dot in dots],[dot.y for dot in dots], 'r.') 
f, = ax.plot(selected_dot.x, selected_dot.y, color='blue', marker='o', linewidth=3) 

plt.show() 

enter image description here

相關問題