我希望设置一种方法,可以将正常图形(暗线,白色/透明背景)转换为伪倒置图形(亮线,黑色/透明背景)。我可以对图像进行后期处理反转,但是直接反转的颜色看起来很糟糕,所以我想改为(尝试)创建从一组颜色到另一组颜色的映射,然后将其应用于所有具有颜色的艺术家。被添加到(所有轴上)的数字。
有没有办法访问已添加到图中的所有对象(例如文本,散点图,线条,刻度标签等)?
编辑:我的动机是自动创建数字的白色背景和黑色背景版本。 出版物(例如)总是(我认为)需要白色背景数字,而演示文稿(即谈话幻灯片)的黑背景数字可能更好。虽然 设置标志并且基于此更改每种颜色会有很多麻烦,例如
if dark:
col_line = 'cyan'
col_bg = 'black'
else:
col_line = 'red'
col_bg = 'white'
# ... plot ...
这样做会更酷,更方便(尽管有开销),
fig.savefig('dark.pdf')
invert(fig)
fig.savefig('light.pdf')
答案 0 :(得分:3)
递归调用.get_children()
,当返回的列表为空时停止。
答案 1 :(得分:1)
您可以使用不同的风格或根据需要更改现有风格,而不是自己更改所有可能艺术家的所有属性。
E.g。您可以从"dark_background"
样式开始,然后使用rcParams
调整其他一些参数。
import numpy as np
import matplotlib.pyplot as plt
plt.style.use("dark_background")
style = {"lines.linewidth" : 2,
"axes.facecolor" : "#410448"}
plt.rcParams.update(style)
plt.plot(np.sin(np.linspace(0, 2 * np.pi)))
plt.show()