Matplotlib แปลงบรรทัดโปร่งใส


131

ฉันกำลังพล็อตสองลักษณะคล้ายกันใน matplotlib และฉันต้องการพล็อตแต่ละบรรทัดด้วยความโปร่งใสบางส่วนเพื่อให้สีแดง (พล็อตที่สอง) ไม่ปิดบังสีฟ้า

ข้อความแสดงแทน

แก้ไข : นี่คือภาพที่มีเส้นโปร่งใส

ข้อความแสดงแทน

คำตอบ:


254

เรียบง่าย:

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

(ฉันรู้ว่าฉันไม่ได้เพิ่มอะไรใหม่ แต่คำตอบที่ตรงไปตรงมาควรปรากฏให้เห็น)


ฉันไม่เห็นว่ามีการบันทึกพารามิเตอร์ alpha ไว้ที่ไหน คุณสามารถอัปเดตคำตอบเพื่อรวมที่นี่เป็นเอกสารได้หรือไม่
Alex Spurling

1
@AlexSpurling การplt.plotใช้คำหลักอาร์กิวเมนต์Line2Dที่พารามิเตอร์อัลฟาในหมู่อื่น ๆ เป็นทรัพย์สินของ
Thirdwater

27

หลังจากที่ฉันพล็อตทุกบรรทัดฉันสามารถกำหนดความโปร่งใสของพวกเขาทั้งหมดดังนี้:

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

แก้ไข:โปรดดูคำตอบของโจในความคิดเห็น


28
ฟังก์ชันการพล็อต maplotlib ทั้งหมดใช้พารามิเตอร์ alpha โดยตรง plt.plot(x, y, 'r-', alpha=0.7)คุณก็สามารถทำ
Joe Kington

3
ฉันยินดีที่จะเห็นภาพที่อัปเดต - คุณช่วยเพิ่มมันเข้าไปในคำตอบนี้ได้ไหม
Sven Marnach

3
@ JoeKington: ดูเหมือนว่าจะรวบรวมบรรทัดก่อนที่จะใช้ความโปร่งใส มีวิธีทำอีกวิธีหนึ่งหรือไม่เพื่อให้เส้นโปร่งใสรวมเข้าด้วยกันเพื่อให้เข้มขึ้น?
naught101

5

มันขึ้นอยู่กับฟังก์ชั่นที่คุณใช้ในการพล็อตบรรทัด แต่ลองดูว่าการที่คุณใช้นั้นใช้ค่าอัลฟ่าแล้วตั้งเป็น 0.5 หรือเปล่า หากไม่ได้ผลให้ลองรับวัตถุเส้นแล้วตั้งค่าอัลฟาของพวกเขาโดยตรง


1
ความคิดเห็นโดย @ joe-kington กล่าวว่าฟังก์ชัน matplotlib ทั้งหมดใช้พารามิเตอร์ alpha คำตอบของคุณต้องการการแก้ไขหรือความคิดเห็นของเขาหรือไม่?
U3.1415926
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.