2016-04-18 15 views
17

Tôi vẽ một đường thẳng mà không chỉ định màu (nghĩ: plt.plot (x, y)). Giả sử màu có màu xanh dương.Cách lấy màu của đường được vẽ gần đây nhất trong mã vạch của Python

Câu hỏi: Làm thế nào để lấy màu này từ đối tượng plt để tôi có thể đặt nó vào một biến?

Có vẻ như đây là gần (và có thể là giải pháp):

p = plt.plot(x,y) 
color = p[0].get_color() 

câu hỏi Cập nhật: Tôi không chắc là tôi hiểu được "0" chỉ số: Có p [0] luôn truy cập nhiều nhất dòng được vẽ gần đây?

+1

có thể trùng lặp của [Làm thế nào tôi có thể nhận được màu sắc của con số cuối cùng trong matplotlib?] (Http://stackoverflow.com/questions/13395888/how-can-i-get- the-color-of-the-last-figure-in-matplotlib) –

+0

@ivan_pozdeev Tôi đã cập nhật câu hỏi của mình, cảm ơn vì đã chỉ ra liên kết – denvar

Trả lời

21

Trong ví dụ của bạn, p là danh sách đối tượng Line2D. Trong ví dụ đó, bạn chỉ có một đối tượng dòng, p [0]. Sau đây là một ví dụ vẽ ba dòng. Khi nhiều dòng được thêm vào, nó được nối vào p.So nếu bạn muốn màu của ô cuối cùng, nó sẽ là a[-1].get_color().

import numpy as np 
import matplotlib.pyplot as plt 

x = np.arange(10) 
y = np.arange(10) 
p = plt.plot(x,y, x,y*2, x,y*3) # make three line plots 
type(p) # list 
type(p[0]) # <class 'matplotlib.lines.Line2D'> 
p[0].get_color() # 'b' 
p[1].get_color() # 'g' 
p[2].get_color() # 'r' 

line plot

Các vấn đề liên quan