我在matplotlib中制作散点图,需要将实际绘图的背景更改为黑色.我知道如何使用以下方法更改绘图的面部颜色:
fig = plt.figure()
fig.patch.set_facecolor('xkcd:mint green')
Run Code Online (Sandbox Code Playgroud)
我的问题是这会改变剧情周围空间的颜色.如何更改绘图的实际背景颜色?
我希望设置一种可以将正常图形(暗线、白色/透明背景)转换为伪倒置图形(浅色线、黑色/透明背景)的方法。我可以后处理反转图像,但直接反转颜色看起来很糟糕,所以我想(尝试)创建从一组颜色到另一组颜色的映射,然后将其应用于所有已添加的艺术家到(所有轴上)一个图形。
有没有办法访问已添加到图形中的所有对象(例如文本、散点图、线条、刻度标签等)?
编辑:我的动机是自动创建白色背景和黑色背景版本的数字。出版物(例如)总是(我认为)需要白色背景数字,而黑色背景数字可能更适合演示文稿(即谈话幻灯片)。虽然它不会是麻烦,设置一个标志,并更改此基础上,例如,每个颜色
if dark:
col_line = 'cyan'
col_bg = 'black'
else:
col_line = 'red'
col_bg = 'white'
# ... plot ...
Run Code Online (Sandbox Code Playgroud)
做这样的事情会更酷,更方便(尽管有开销),
fig.savefig('dark.pdf')
invert(fig)
fig.savefig('light.pdf')
Run Code Online (Sandbox Code Playgroud) 我有一个颜色条,是为地球表面温度的热图图像创建的。我遇到的问题是 pyplot 图以白色背景保存,而地球图像在黑色背景上。我将图形图像设置为透明,需要将轴上的文本和刻度更改为白色。
我已经尝试了我在这里看到的所有内容,并在 matplotlib 网站上搜索了几个小时,但似乎没有什么能像改变文本颜色这样简单的事情。
a = np.array([[319.785, 198.988]])
plt.figure(figsize=(7, 1))
img = plt.imshow(a)
plt.gca().set_visible(False)
cax = plt.axes([0, .3, 1, 0.5])
cb = plt.colorbar(orientation='horizontal', cax=cax)
plt.savefig("colorbar.png", bbox_inches='tight', transparent=True)
plt.show()
Run Code Online (Sandbox Code Playgroud)