我用 matplotlib 繪制了一組 4 個箱線圖,并使用不同的方法使軸的字體大小和形狀相似,但其中一個子圖具有不同的形狀。我不知道如何解決它。我已經把我的結果放在這里了。我rcParams也在font-size每個子圖中使用了它們,但它們都不能解決這個問題。如何使所有軸字體大小在形狀方面相似?我知道最好定義一個可重現的問題,但我不確定我在哪一部分犯了錯誤,這就是我在這里編寫代碼的原因。代碼如下:import osimport numpy as npimport matplotlib.pyplot as pltimport pylabimport matplotlib as mplimport pandas as pdfrom matplotlib import cmfrom matplotlib import rcParamsfig, axs = plt.subplots(2, 2,sharex=True,sharey=True)plt.rcParams.update({'font.size': 20})root = r'C:\Users\Master Candidate\Desktop\New folder\Desktop\Out\NEW SCENARIO\Intersection\Beta 10\intersection'xx=[]percentage=[]labels = []gg=[]my_list = os.listdir(root)my_list = [file for file in sorted(my_list) if os.path.isdir(os.path.join(root, file))]my_list= sorted(my_list)percetanges = []for directory in my_list: CASES = [file for file in os.listdir(os.path.join(root, directory)) if file.startswith('config')] if len(CASES)==0: continue CASES=sorted(CASES) percentage=[] for filename in CASES: with open(os.path.join(root, directory,filename), "r") as file: lines = file.readlines() x = [float(line.split()[0]) for line in lines] y = [float(line.split()[1]) for line in lines] g = np.linspace(min(y),max(y),100) h = min(y)+6 t = max(y)-6 xx=[] for i in range(1,len(x)): if (y[i] < h or y[i] > t): xx.append(x[i]) percent = len(xx)/len(y) percentage.append(percent) labels.append(directory) labels=sorted(labels) percetanges.append(percentage)for i, x in enumerate(percetanges): axs[0, 0].boxplot(x,positions=[i],whis=0.001,widths = 0.6)plt.xticks(np.arange(len(labels)),labels)plt.grid()plt.ylim((0,1))...the same strategy for the rest of 3 subplots在代碼的最后,我通過保存完成了該過程。我的意思是你在上面看到的工作對于每個子圖都是重復的,我不做任何其他事情
1 回答

翻翻過去那場雪
TA貢獻2065條經驗 獲得超14個贊
有兩種方法可以設置多個繪圖的 x 軸字體大小
plt.setp(ax.get_xticklabels(), fontsize=14)
ax.tick_params(axis='x', labelsize=14)
代碼:
import matplotlib.pyplot as plt
def example_plot(ax):
ax.plot([1, 2])
plt.setp(ax.get_xticklabels(), fontsize=14)
# ax.tick_params(axis='x', labelsize=16)
fig, axs = plt.subplots(nrows=2, ncols=2, sharex=True, sharey=True)
for ax in axs.flat:
example_plot(ax)
fig.suptitle('sub title', fontsize=16)
fig.text(0.5, 0.04, '$Cr$', ha='center', va='center', fontsize=16)
fig.text(0.06, 0.5, '$a$', ha='center', va='center', rotation='vertical', fontsize=16)
plt.show()
添加回答
舉報
0/150
提交
取消