微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

python – 在所有子图上控制xaxis刻度标记大小

我有下面的代码,这是有用的.但是,它只会更改其中一个子图的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)

histogram

我尝试将plt更改为axarr [r] [c],但它给了我一条关于没有属性xticks的错误消息.

解决方法:

plt.xticks仅作用于创建的最终子图集轴.您想在所有子图上设置它.您有两种选择:

1)您可以使用轴的tick_params属性为每个轴设置刻度标签大小.使用此行而不是您当前拥有的plt.xticks行:

axarr[r][c].tick_params(axis='x',labelsize=6)

2)您可以使用rcParams为所有子图设置全局(如@DavidG所建议).在创建图形和轴之前放置此行:

plt.rcParams['xtick.labelsize'] = 6

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐