我有以下代码,这是有用的。但是,它只会更改其中一个子图的xticks大小。如何更改它以更改所有这些的大小?
import pandas as pd
import matplotlib.pyplot as plt
import numpy as np
input_file = 'CSP.csv'
output_file = 'sub_plots.png'
df = pd.read_csv(input_file, header = 0)
classes = ['SD','SC','FIR','MD','UA','LB']
f, axarr = plt.subplots(2, 3)
f.tight_layout()
i=0
for r in range(2):
for c in range(3):
axarr[r][c].hist(df.CSP_change[(df.Class==classes[i])].values,10,rwidth=1, alpha=0.3)
axarr[r][c].set_title(classes[i])
axarr[r][c].spines['top'].set_visible(False)
axarr[r][c].spines['right'].set_visible(False)
axarr[r][c].spines['bottom'].set_visible(True)
axarr[r][c].spines['left'].set_visible(True)
axarr[r][c].get_xaxis().tick_bottom()
axarr[r][c].get_yaxis().tick_left()
plt.xticks(fontsize=6)
i += 1
#save
plt.savefig(output_file)
我尝试将plt更改为axarr [r] [c]但是它给了我一条关于没有属性xticks的错误消息。
答案 0 :(得分:4)
我认为最简单的解决方案是:
import matplotlib as mpl
# some code here
f, axarr = plt.subplots(2, 3)
f.tight_layout()
label_size = 6
mpl.rcParams['xtick.labelsize'] = label_size #add these lines in
# the rest of your code
答案 1 :(得分:4)
plt.xticks
仅作用于创建的最终子图轴。您想在所有子图上设置它。您有两种选择:
1)您可以使用轴的tick_params
属性为每个轴设置刻度标签大小。请使用此行代替您当前拥有的plt.xticks
行:
axarr[r][c].tick_params(axis='x',labelsize=6)
2)您可以使用rcParams
为所有子图设置全局(如@DavidG所示)。在创建图形和轴之前放置此行:
plt.rcParams['xtick.labelsize'] = 6
答案 2 :(得分:1)
以下方法可让您在每个子图上进行设置:
import pandas as pd
import matplotlib.pyplot as plt
import numpy as np
input_file = 'CSP.csv'
output_file = 'sub_plots.png'
df = pd.read_csv(input_file, header = 0)
classes = ['SD','SC','FIR','MD','UA','LB']
f, axarr = plt.subplots(2, 3)
f.tight_layout()
i=0
plt.tick_params(axis='both', which='major', labelsize=6)
for rows in axarr:
for ax_c in rows:
ax_c.hist(df.values, 10, rwidth=1, alpha=0.3)
ax_c.set_title(classes[i])
ax_c.spines['top'].set_visible(False)
ax_c.spines['right'].set_visible(False)
ax_c.spines['bottom'].set_visible(True)
ax_c.spines['left'].set_visible(True)
ax_c.get_xaxis().tick_bottom()
ax_c.get_yaxis().tick_left()
ax_c.tick_params(labelsize=6)
i += 1
#save
plt.savefig(output_file)