จะเข้าถึงวงจรสี (และรูปแบบที่สมบูรณ์) ได้อย่างไร?
ax._get_lines.prop_cycler
สถานะปัจจุบันถูกเก็บไว้ใน ไม่มีวิธีการในตัวเพื่อแสดง "รายการฐาน" สำหรับรายการทั่วไปitertools.cycle
และโดยเฉพาะสำหรับax._get_lines.prop_cycler
(ดูด้านล่าง)
ผมได้โพสต์ที่นี่itertools.cycle
ฟังก์ชั่นไม่กี่ที่จะได้รับข้อมูลเกี่ยวกับ หนึ่งสามารถใช้
style_cycle = ax._get_lines.prop_cycler
curr_style = get_cycle_state(style_cycle)
curr_color = curr_style['color']
เพื่อให้ได้สีปัจจุบันโดยไม่ต้องเปลี่ยนสถานะของวงจร
TL; ดร
วงจรสี (และรูปแบบที่สมบูรณ์) เก็บไว้ที่ไหน?
วัฏจักรสไตล์จะถูกเก็บไว้ในสองตำแหน่งที่แตกต่างกันหนึ่งสำหรับค่าเริ่มต้นและอีกหนึ่งสำหรับแกนปัจจุบัน (สมมติว่าimport matplotlib.pyplot as plt
และax
เป็นตัวจัดการแกน):
default_prop_cycler = plt.rcParams['axes.prop_cycle']
current_prop_cycle = ax._get_lines.prop_cycler
โปรดทราบว่าสิ่งเหล่านี้มีคลาสที่แตกต่างกัน ค่าเริ่มต้นคือ "การตั้งค่ารอบฐาน" และจะไม่ทราบเกี่ยวกับสถานะปัจจุบันของแกนใด ๆ ในขณะที่กระแสจะรู้เกี่ยวกับวงจรที่จะติดตามและสถานะปัจจุบัน:
print('type(default_prop_cycler) =', type(default_prop_cycler))
print('type(current_prop_cycle) =', type(current_prop_cycle))
[]: type(default_prop_cycler) = <class 'cycler.Cycler'>
[]: type(current_prop_cycle) = <class 'itertools.cycle'>
รอบเริ่มต้นอาจมีหลายปุ่ม (คุณสมบัติ) ในการหมุนเวียนและหนึ่งจะได้รับเฉพาะสี:
print('default_prop_cycler.keys =', default_prop_cycler.keys)
default_prop_cycler2 = plt.rcParams['axes.prop_cycle'].by_key()
print(default_prop_cycler2)
print('colors =', default_prop_cycler2['color'])
[]: default_prop_cycler.keys = {'color', 'linestyle'}
[]: {'color': ['r', 'g', 'b', 'y'], 'linestyle': ['-', '--', ':', '-.']}
[]: colors = ['r', 'g', 'b', 'y']
เราสามารถเปลี่ยนการcycler
ใช้สำหรับสิ่งที่กำหนดaxes
หลังจากกำหนดสิ่งcustom_prop_cycler
นั้นด้วย
ax.set_prop_cycle(custom_prop_cycler)
แต่มีในตัวไม่มีวิธีที่จะเปิดเผยรายการ "ฐาน" สำหรับทั่วไปและโดยเฉพาะอย่างยิ่งสำหรับitertools.cycle
ax._get_lines.prop_cycler