```python
# -*- coding: utf-8 -*-
"""
Created on Thu Oct 20 21:34:12 2022
@author: Lenovo
"""
import os
import pandas as pd
import numpy as np
import seaborn as sns
path=(r'C:\Users\Lenovo\Desktop\BOXPLOT\New Folder')
a=pd.read_csv(os.path.join(path,'pro1990.txt'))
a1=pd.read_csv(os.path.join(path,'pro1999.txt'))
a2=pd.read_csv(os.path.join(path,'pro2004.txt'))
a3=pd.read_csv(os.path.join(path,'pro2009.txt'))
a4=pd.read_csv(os.path.join(path,'pro2014.txt'))
a5=pd.read_csv(os.path.join(path,'pro2019.txt'))
b=pd.read_csv(os.path.join(path,'liv1990.txt'))
b1=pd.read_csv(os.path.join(path,'liv1999.txt'))
b2=pd.read_csv(os.path.join(path,'liv2004.txt'))
b3=pd.read_csv(os.path.join(path,'liv2009.txt'))
b4=pd.read_csv(os.path.join(path,'liv2014.txt'))
b5=pd.read_csv(os.path.join(path,'liv2019.txt'))
c=pd.read_csv(os.path.join(path,'eco1990.txt'))
c1=pd.read_csv(os.path.join(path,'eco1999.txt'))
c2=pd.read_csv(os.path.join(path,'eco2004.txt'))
c3=pd.read_csv(os.path.join(path,'eco2009.txt'))
c4=pd.read_csv(os.path.join(path,'eco2014.txt'))
c5=pd.read_csv(os.path.join(path,'eco2019.txt'))
a['VALUE'] = a['VALUE']/100-273
a1['VALUE'] = a1['VALUE']/100-273
a2['VALUE'] = a2['VALUE']/100-273
a3['VALUE'] = a3['VALUE']/100-273
a4['VALUE'] = a4['VALUE']/100-273
a5['VALUE'] = a5['VALUE']/100-273
b['VALUE'] = b['VALUE']/100-273
b1['VALUE'] = b1['VALUE']/100-273
b2['VALUE'] = b2['VALUE']/100-273
b3['VALUE'] = b3['VALUE']/100-273
b4['VALUE'] = b4['VALUE']/100-273
b5['VALUE'] = b5['VALUE']/100-273
c['VALUE'] = c['VALUE']/100-273
c1['VALUE'] = c1['VALUE']/100-273
c2['VALUE'] = c2['VALUE']/100-273
c3['VALUE'] = c3['VALUE']/100-273
c4['VALUE'] = c4['VALUE']/100-273
c5['VALUE'] = c5['VALUE']/100-273
pro1990= []
for i,j in zip(a['VALUE'],a['COUNT']):
pro1990 += [i]*j
pro1999= []
for i,j in zip(a1['VALUE'],a1['COUNT']):
pro1999 += [i]*j
pro2004= []
for i,j in zip(a2['VALUE'],a2['COUNT']):
pro2004 += [i]*j
pro2009= []
for i,j in zip(a3['VALUE'],a3['COUNT']):
pro2009 += [i]*j
pro2014= []
for i,j in zip(a4['VALUE'],a['COUNT']):
pro2014 += [i]*j
pro2019= []
for i,j in zip(a5['VALUE'],a5['COUNT']):
pro2019 += [i]*j
#=======================================
liv1990= []
for i,j in zip(b['VALUE'],b['COUNT']):
liv1990 += [i]*j
liv1999= []
for i,j in zip(b1['VALUE'],b1['COUNT']):
liv1999 += [i]*j
liv2004= []
for i,j in zip(b2['VALUE'],b2['COUNT']):
liv2004 += [i]*j
liv2009= []
for i,j in zip(b3['VALUE'],b3['COUNT']):
liv2009 += [i]*j
liv2014= []
for i,j in zip(b4['VALUE'],b4['COUNT']):
liv2014 += [i]*j
liv2019= []
for i,j in zip(b5['VALUE'],b5['COUNT']):
liv2019 += [i]*j
#=======================================
eco1990= []
for i,j in zip(c['VALUE'],c['COUNT']):
eco1990 += [i]*j
eco1999= []
for i,j in zip(c1['VALUE'],c1['COUNT']):
eco1999 += [i]*j
eco2004= []
for i,j in zip(c2['VALUE'],c2['COUNT']):
eco2004 += [i]*j
eco2009= []
for i,j in zip(c3['VALUE'],c3['COUNT']):
eco2009 += [i]*j
eco2014= []
for i,j in zip(c4['VALUE'],c4['COUNT']):
eco2014 += [i]*j
eco2019= []
for i,j in zip(c5['VALUE'],c5['COUNT']):
eco2019 += [i]*j
import matplotlib.pyplot as plt
data = [eco1990,pro1990,liv1990]
data2=[eco1999,pro1999,liv1999]
data3 = [eco2004,pro2004,liv2004]
data4 = [eco2009,pro2009,liv2009]
data5=[eco2014,pro2014,liv2014]
data6 = [eco2019,pro2019,liv2019]
#箱型图名称
labels = ["ES", "PS", "LS"]
#三个箱型图的颜色 RGB (均为0~1的数据)
colors = [(135/255.,232/255.,255/255.), (245/255.,245/255.,122/255.), (196/255.,28/255.,0/255.)]
#绘制箱型图
#patch_artist=True-->箱型可以更换颜色,positions=(1,1.4,1.8)-->将同一组的三个箱间隔设置为0.4,widths=0.3-->每个箱宽度为0.3
bplot = plt.boxplot(data, 0,'', patch_artist=True,labels=labels,positions=(1,1.6,2.2),widths=0.50,
medianprops={'color': 'gray', 'linewidth': '0.8'}
,whiskerprops={'linestyle': ':'} )
#将三个箱分别上色
for patch, color in zip(bplot['boxes'], colors):
patch.set_facecolor(color)
bplot2 = plt.boxplot(data2, 0,'', patch_artist=True, labels=labels,positions=(3.4,4,4.6),widths=0.50
, medianprops={'color': 'gray', 'linewidth': '0.8'}
, whiskerprops={'linestyle': ':'} )
for patch, color in zip(bplot2['boxes'], colors):
patch.set_facecolor(color)
bplot3 = plt.boxplot(data3, 0,'', patch_artist=True, labels=labels,positions=(5.8,6.4,7),widths=0.50
, medianprops={'color': 'gray', 'linewidth': '0.8'}
, whiskerprops={'linestyle': ':'} )
for patch, color in zip(bplot3['boxes'], colors):
patch.set_facecolor(color)
bplot4 = plt.boxplot(data4, 0,'', patch_artist=True, labels=labels,positions=(8.2,8.8,9.4),widths=0.50
, medianprops={'color': 'gray', 'linewidth': '0.8'}
, whiskerprops={'linestyle': ':'} )
for patch, color in zip(bplot4['boxes'], colors):
patch.set_facecolor(color)
bplot5 = plt.boxplot(data5 , 0,'', patch_artist=True, labels=labels,positions=(10.6,11.2,11.8),widths=0.50
, medianprops={'color': 'gray', 'linewidth': '0.8'}
, whiskerprops={'linestyle': ':'} )
for patch, color in zip(bplot5['boxes'], colors):
patch.set_facecolor(color)
bplot6 = plt.boxplot(data6, 0,'', patch_artist=True, labels=labels,positions=(13,13.6,14.2),widths=0.50
, medianprops={'color': 'gray', 'linewidth': '0.8'}
, whiskerprops={'linestyle': ':'} )
for patch, color in zip(bplot6['boxes'], colors):
patch.set_facecolor(color)
font={'family': 'Times New Roman',
'weight': 'normal',
'size': 10}
font1={'family': 'Times New Roman',
'weight': 'normal',
'size': 10}
plt.tight_layout()
x_position=[1.2,3.6,6,8.4,10.8,13.2]
x_position_fmt=["1990","1999","2004","2009","2014","2019"]
plt.xticks([i + 0.8 / 2 for i in x_position], x_position_fmt,fontsize=8)
y_tick = np.linspace(10,45,8)
plt.yticks(y_tick,fontsize=8)
plt.xlabel('YEAR',font = font)
plt.ylabel('LST (℃)',font = font)
# plt.grid(linestyle="--", alpha=0.3) #绘制图中虚线 透明度0.3
plt.legend(bplot['boxes'],labels,loc='lower right',prop=font1) #绘制表示框,右下角绘制
plt.savefig(os.path.join(path,"pic.png"),figsize=[18,13],dpi=400)
plt.show()
【分组heiheihei】
于 2022-10-21 19:27:21 首次发布