2013-08-25 36 views
5

Tôi đang cố tạo một ô phân tán bằng các thanh thông báo lỗi trong matplotlib. Sau đây là ví dụ về mã của tôi trông như thế nào:Matplotlib Nút thanh lỗi bị thiếu

import matplotlib.pyplot as plt 
import numpy as np 
import random 

x = np.linspace(1,2,10) 
y = np.linspace(2,3,10) 
err = [random.uniform(0,1) for i in range(10)] 

plt.errorbar(x, y, 
     yerr=err, 
     marker='o', 
     color='k', 
     ecolor='k', 
     markerfacecolor='g', 
     label="series 2", 
     capsize=5, 
     linestyle='None') 
plt.show() 

Vấn đề là cốt truyện không có mũ! enter image description here

Đối với những gì đáng giá, tôi đang sử dụng Ubuntu 13.04, Python 2.7.5 | Anaconda 1.6.1 (64-bit) | và Matplotlib 1.2.1.

Đây có phải là một bản RCparam ẩn cần được ghi đè không?

+1

đã làm bạn thay đổi bất cứ điều gì để làm cho màu xám nền của bạn? Tôi tự hỏi nếu bạn đang có vấn đề zorder (liên quan đến http://stackoverflow.com/questions/14003572/how-to-force-errorbars-to-render-last-with-matplotlib/14007175#14007175). Các bản vá cho vấn đề đó là 1,3, nhưng không phải 1.2.1 – tacaswell

+2

Mã của bạn chạy đúng trên hệ thống của tôi, tôi nghi ngờ rằng làm cho đồ thị trông khủng khiếp (vâng, tôi biết nó là chủ quan) bạn đã phá vỡ một cái gì đó. Chúng tôi cần xem rcparams của bạn để gỡ lỗi này. – tacaswell

+0

Có, Thực ra tôi đang sử dụng tệp matplotlibrc được thay đổi đáng kể so với mặc định. Phần nào của tệp bạn cần xem? – astromax

Trả lời

9

gì làm việc cho tôi được thêm này (theo: How to set the line width of error bar caps, in matplotlib):

(_, caps, _) = plt.errorbar(x,y, yerr=err, capsize=20, elinewidth=3) 

for cap in caps: 
    cap.set_color('red') 
    cap.set_markeredgewidth(10) 
+2

bất kỳ ý tưởng nào _why_ hoạt động này? – tacaswell

+0

Không đặc biệt. Tôi đã cố gắng để hiểu nó, nhưng nó cú pháp dường như gây nhầm lẫn cho tôi. Tôi biết (_, mũ, _) là sản xuất một bộ tuple của tuple, tuy nhiên, set_color() và set_markeredgewidth() Tôi không quen thuộc với. – astromax

+0

Chúng thực hiện chính xác những gì chúng giống như âm thanh, thiết lập màu sắc và độ rộng cạnh của các điểm đánh dấu. http://matplotlib.org/api/artist_api.html#matplotlib.lines.Line2D.set_color http://matplotlib.org/api/artist_api.html#matplotlib.lines.Line2D.set_markeredgewidth – tacaswell

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