我在一堆包含各种测量的csv文件中循环。
每个文件可能来自4个不同的数据源之一。
在每个文件中,我将数据合并到每月的数据集中,然后在3x4网格中绘制。保存此绘图后,循环将继续并对下一个文件执行相同的操作。
这一部分我搞清楚了,不过我想在情节上增加一个视觉线索,看看是什么数据。据我所知(并试过)
plt.subplot(4,3,1)
plt.hist(Jan_Data,facecolor='Red')
plt.ylabel('value count')
plt.title('January')
确实有效,但是这样的话,我必须手工将
facecolor='Red'
添加到每12个子块在这种情况下循环绘图是行不通的,因为我只想让ylabel
用于最左边的绘图,而xlabel
s用于最下面的一行。在开始时设置
facecolor
。fig = plt.figure(figsize=(20,15),facecolor='Red')
不起作用,因为它现在只改变20×15的背景色,当我将其保存为PNG时,背景色随后被忽略,因为它只为屏幕输出设置。
那么,对于我丢失的
setthecolorofallbars='Red'
或plt.hist(…
是否只有一个简单的plt.savefig(…
命令,或者我应该复制n'粘贴到所有12个月? 最佳答案
可以使用mpl.rc("axes", color_cycle="red")
设置所有轴的默认颜色周期。
在这个小玩具示例中,我使用with mpl.rc_context
块将mpl.rc
的效果限制为只有块。这样就不会破坏整个会话的默认参数。
import matplotlib as mpl
import matplotlib.pylab as plt
import numpy as np
np.random.seed(42)
# create some toy data
n, m = 2, 2
data = []
for i in range(n*m):
data.append(np.random.rand(30))
# and do the plotting
with mpl.rc_context():
mpl.rc("axes", color_cycle="red")
fig, axes = plt.subplots(n, m, figsize=(8,8))
for ax, d in zip(axes.flat, data):
ax.hist(d)
关于python - 如何一次更改多个子图的颜色?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28671056/