Lô lô trong suốt Matplotlib


131

Tôi đang vẽ hai quỹ đạo tương tự trong matplotlib và tôi muốn vẽ từng đường thẳng với độ trong suốt một phần để màu đỏ (âm mưu thứ hai) không che khuất màu xanh.

văn bản thay thế

EDIT : Đây là hình ảnh với các đường trong suốt.

văn bản thay thế

Câu trả lời:


254

Đơn giản và đơn giản:

plt.plot(x, y, 'r-', alpha=0.7)

(Tôi biết tôi không thêm gì mới, nhưng câu trả lời đơn giản sẽ hiển thị).


Tôi không thể thấy nơi tham số alpha được ghi lại. Bạn có thể cập nhật câu trả lời để bao gồm tài liệu này ở đâu không?
Alex Spurling

1
@AlexSpurling các plt.plotđối số từ khóa Line2Dcó tham số alpha, trong số các đối số khác, là một thuộc tính của.
Thứ ba

27

Sau khi tôi vẽ tất cả các dòng, tôi có thể đặt độ trong suốt của tất cả các dòng như sau:

for l in fig_field.gca().lines:
    l.set_alpha(.7)

EDIT: vui lòng xem câu trả lời của Joe trong các bình luận.


28
Tất cả các hàm vẽ sơ đồ maplotlib đều lấy tham số alpha trực tiếp. Bạn chỉ có thể làm plt.plot(x, y, 'r-', alpha=0.7).
Joe Kington

3
Tôi sẽ rất vui khi thấy hình ảnh được cập nhật - bạn có thể thêm nó vào câu trả lời này không?
Sven Marnach

3
@JoeKington: có vẻ như sẽ tổng hợp các dòng trước khi áp dụng độ trong suốt. Có cách nào để làm điều đó theo cách khác, để các đường trong suốt cộng lại với nhau để có được màu tối hơn?
ness101

5

Nó thực sự phụ thuộc vào các chức năng bạn đang sử dụng để vẽ các đường thẳng, nhưng hãy thử xem liệu bạn đang sử dụng có lấy giá trị alpha hay không và đặt nó thành 0,5. Nếu điều đó không hiệu quả, hãy thử lấy các đối tượng dòng và đặt trực tiếp giá trị alpha của chúng.


1
Nhận xét của @ joe-kington nói rằng tất cả các hàm matplotlib đều lấy tham số alpha, câu trả lời của bạn có cần chỉnh sửa hay nhận xét của anh ấy không?
U3.1415926
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.