2013-04-23 27 views
5

Tôi muốn xóa phía sau dòng tách (chia?) Trong bản đồ màu vẽ, sử dụng ColorbarBase:Matplotlib ColorbarBase: xóa tách màu

cm = get_cmap('RdBu') 
Ncol = 501 
cccol = cm(1.*arange(Ncol)/Ncol) 
cax  = fig.add_axes([0.15,0.15,0.05,0.4]) 
fig.add_axes([0.5,0.15,0.3,0.03]) 
norm = mpl.colors.Normalize(vmin=valmin, vmax=valmax) 
cb1  = mpl.colorbar.ColorbarBase(cax, cmap=cm, norm=norm, orientation='vertical') 

Nó luôn luôn mang lại cho tôi quá nhiều đường màu đen ở giữa. Có cách nào để loại bỏ chúng? Tôi đã thử các công cụ như:

del cb1.lines 
del cb1.dividers 

hoặc

cb1.lines.remove() 
cb1.lines = [] 

như đã thấy trong các phương pháp ColorbarBase trong http://fossies.org/dox/matplotlib-1.2.0/matplotlib_2colorbar_8py_source.html#l00281.

colorbar with too many black lines

+0

.. hoặc có phải do định dạng tệp đầu ra PNG không? plt.savefig ('xxx.png') – hannesk

Trả lời

1

Tôi phát hiện ra rằng nó thực sự là chương trình phụ trợ matplotlib!

mpl.use('WXAgg') 

giải quyết!

+0

Ah, tất nhiên rồi. Làm tốt! – Mike

2

Điều đó phù hợp với tôi, không có bất kỳ dòng nào. Tôi thấy hai khả năng hiển nhiên:

1) Bạn có phiên bản lỗi. Nếu tôi làm matplotlib.__version__ tại dấu nhắc python, tôi thấy 1.2.0. Tôi đang sử dụng OS X 10.6.8 với python 2.7.3 và mọi thứ được cài đặt từ macports. CÒn bạn thì sao?

2) Đó là nội dung trong mã bạn chưa hiển thị cho chúng tôi. Với các câu hỏi như thế này, bạn nên luôn hiển thị một ví dụ làm việc tối thiểu. (Mà đôi khi có thể giúp bạn tìm ra vấn đề của bạn trước khi bạn thậm chí hỏi nó.) Ví dụ, tôi có thể bắt đầu ipython --pylab, và các công việc sau:

fig = figure() 
valmin =-1.0 
valmax =1.0 
cm  = get_cmap('RdBu') 
Ncol = 501 
cccol = cm(1.*arange(Ncol)/Ncol) 
cax = fig.add_axes([0.15,0.15,0.05,0.4]) 
norm = mpl.colors.Normalize(vmin=valmin, vmax=valmax) 
cb1 = mpl.colorbar.ColorbarBase(cax, cmap=cm, norm=norm, orientation='vertical') 
draw() 
savefig('/tmp/bla.png') 

Cả GUI bật lên và PNG mà được lưu hiển thị như sau:

Colorbar

Điều đó có phù hợp với bạn không? Bạn đã làm điều gì đó khác biệt đáng kể trong phần còn lại của mã?

+0

Được rồi, cảm ơn! Tôi đã thử trên Ubuntu của tôi (12.04) với matplotlib 1.2.1 .. nhưng trên OSX của tôi, nó cũng hoạt động như một charme! ... Tôi bối rối. Như thường lệ. – hannesk

+0

aha ... khi tôi để nó chạy trong ipython, nó hoạt động. Nhưng nếu tôi để cho nó chạy như một kịch bản từ thiết bị đầu cuối với "python file.py" nó tạo ra các đường màu đen. Có lẽ nó có thể là một chương trình phụ trợ khác không? – hannesk

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