Python画双Y轴图和设置图例的位置

index='TSA'
#放指数的文件
file=r'C:\Users\LHW\Desktop\南极企鹅与遥相关\企鹅数据\ARCGIS可视化\和各指数的相关性分析\total去掉1979年之前的.xlsx'
#p_values的文件
file1=r'C:\Users\LHW\Desktop\penguin_plot\adelie_pvalues_plot.xlsx'
#企鹅数量的文件
file2=r'C:\Users\LHW\Desktop\南极企鹅与遥相关\企鹅数据\ARCGIS可视化\和各指数的相关性分析\1979后的去趋势相关性分析\adelie_and_index_20210824.xlsx'
#图片输出文件路径
output_path='C:/Users/LHW/Desktop/penguin_plot/画出显著性的那些站点的企鹅数量和指数趋势/'+index+'/'

#读出指数的数据
import pandas as pd
import matplotlib.pyplot as plt
import matplotlib as mpl
import numpy as np
import seaborn as sns

sns.set(font='Times New Roman',font_scale=1.5)
mpl.rcParams["font.family"] = 'Times New Roman'  #默认字体类型
mpl.rcParams["mathtext.fontset"] = 'cm' #数学文字字体
mpl.rcParams["font.size"] = 15   #字体大小
mpl.rcParams["axes.linewidth"] = 1   #轴线边框粗细(默认的太粗了)

AMM=pd.read_excel(file,sheet_name=index)
AMM=AMM.set_index('year')
#先找出显著性的那些位点
pvalue_data=pd.read_excel(file1)
docu=pvalue_data[pvalue_data[index]<0.1]
site_lower_01=list(docu['site_name'])

for i in range(len(site_lower_01)):
    #提取显著性位点的企鹅变化序列
    site=site_lower_01[i]
    population_data=pd.read_excel(file2)
    site_popu_dataframe=population_data[population_data['site_name']==site]
    site_popu_data=site_popu_dataframe[['season_starting','penguin_count']]

    #将两个数据框合并
    #设置索引
    site_popu_data=site_popu_data.set_index('season_starting')
    summary=AMM.join(site_popu_data)

    year=np.array(summary.index)
    x=year
    y1=summary[index]
    y2=summary['penguin_count']

    fig = plt.figure(figsize=(12,5))
    ax1 = fig.add_subplot(111)
    ax1.plot(x, y1,marker='o',label=index)
    ax1.set_ylabel(index)
    ax1.set_title(index+' and penguin count in '+site)

    ax2 = ax1.twinx()  # this is the important function
    ax2.plot(x, y2, 'r',marker='o',label='penguin count')
    # ax2.set_xlim([0, np.e])
    ax2.set_ylabel('penguin count')
    fig.legend(loc='upper center', bbox_to_anchor=(0.8,0.87))
    plt.savefig(output_path+index+site+'.jpg',dpi=300)

注:其中sns.set()函数也有字体和字号的设置。

猜你喜欢

转载自blog.csdn.net/weixin_45577825/article/details/119947868
今日推荐