gpt4 book ai didi

python - 将全局设置应用于 pyplot 中的所有子图

转载 作者:行者123 更新时间:2023-12-05 08:42:24 29 4
gpt4 key购买 nike

这与 this 有关和 this问题。

我有一系列具有非常相似设置的图形和子图。但是,我似乎找不到同时设置它们的方法。这是一个简化版本(我通常处理更多实例):

fspec = plt.figure(1)
spC = fspec.add_subplot(211)
spC.set_title('Surface concentrations')
spC.grid(True)
spC.set_ylim(1e-3, None)
spT = fspec.add_subplot(212, sharex=spC)
spT.set_title('Surface temperature')
spT.grid(True)
spT.set_ylim(1e-3, None)

fener = plt.figure(2)
enC = fener.add_subplot(211)
enC.set_title('Surface concentrations')
enC.grid(True)
enC.set_ylim(1e-3, None)
enT = fener.add_subplot(212, sharex=enC)
enT.set_title('Surface temperature')
enT.grid(True)
enT.set_ylim(1e-3, None)

我觉得应该有一种方法可以将某些东西应用于每个打开的子图,或者至少是图中的每个子图。有点像

fspec.set_global_grid(True)
fspec.set_global_ylim(1e-3, None)

可是我找不到。

我看了一下之前的一些,但它们似乎都不适合我,因为我不会一次处理一个图形或轴,我会同时处理所有这些图形或轴。

干杯。

最佳答案

一些主要涉及图形样式的设置可以使用 matplotlib rc parameters 进行全局设置。 .例如,在整个脚本中设置网格,将

plt.rcParams['axes.grid'] = True

在文件的开头(导入之后)。

诸如轴限制之类的其他东西实际上是特定于绘图本身的,并且没有全局参数。但是您仍然可以按照链接问题中的概述进行操作,即编写您自己的函数来完成您需要的大部分工作。

import numpy as np
import matplotlib.pyplot as plt
plt.rcParams['axes.grid'] = True

def plotfunction(fig, x1, y1, x2, y2,
title1 = 'Surface concentrations',
title2 = 'Surface temperature', **kwargs ):
ax = fig.add_subplot(211)
ax2 = fig.add_subplot(212, sharex=ax)
ax.set_title(title1)
ax2.set_title(title2)
ax.set_ylim(1e-3, None)
ax2.set_ylim(1e-3, None)
ax.plot(x1, y1, **kwargs)
ax2.plot(x2, y2, **kwargs)


fspec = plt.figure(1)
fener = plt.figure(2)

x1, y1, x2, y2 = np.loadtxt("spectrum.txt", unpack=True)
plotfunction(fspec,x1, y1, x2, y2)

x1, y1, x2, y2 = np.loadtxt("energy.txt", unpack=True)
plotfunction(fener,x1, y1, x2, y2, linewidth=3)

关于python - 将全局设置应用于 pyplot 中的所有子图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41945836/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com