matplotlib与seaborn,箱形图绘制比较

当我开始研究seaborn时我惊呆了, seaborn之于matplotlib,相当于pandas之于numpy呀。真是强又简洁,终于不用幸苦修改参数,图画得要更漂亮了,能用一句话搞定的,python绝不说多句。下面用我绘的一个图作例子,matplotlib绘图用了30行, seaborn用了9行。

原数据:2007年1月至2018年12月的平均颗粒物数据
matplotlib与seaborn,箱形图绘制比较_第1张图片

matplotlib绘图(箱型图)

matplotlib与seaborn,箱形图绘制比较_第2张图片

import pandas as pd
from matplotlib import pyplot as plt
from matplotlib.font_manager import FontProperties
font = FontProperties(fname=r"C:\\WINDOWS\\Fonts\\simsun.ttc", size=14)
import numpy as np
data=pd.read_csv('M:\\data\\PM历年月平均值.csv',index_col=0,encoding='gbk')
#月分类
month=tuple((i for i in range(1,13)))
#建设年为索引,月为列的dataframe
dfM=pd.DataFrame(columns=month)
dfm=pd.DataFrame(columns=month)
#对元素赋值
for i in month:
    temx='0'+str(i) if i<10 else str(i)
    temdata=data[data['time'].apply(lambda x:str(x)[-2:]).str.contains(temx)]
    dfM[i]=temdata['PM2.5'].values
#更改索引名
color = dict(boxes='DarkGreen',whiskers='DarkOrange',medians='DarkBlue',caps='Gray')
dfM.plot.box(ylim = [0,100],
           grid = True,
           color = color,
           )
plt.xlabel('月份',FontProperties=font)
plt.ylabel('质量浓度(μg/$\mathregular{m^3}$)',FontProperties=font)
plt.title('PM$_{2.5}$')
plt.show()

senborn绘图(箱型图)

matplotlib与seaborn,箱形图绘制比较_第3张图片

import pandas as pd
from matplotlib import pyplot as plt
import numpy as np
import seaborn as sns
sns.set(font='SimHei')
data=pd.read_csv('M:\\data\\PM历年月平均值.csv',index_col=0,encoding='gbk')
data['月份']=data['time'].apply(lambda x:str(x)[-2:])
sns.boxplot(x=data['月份'],y=data['PM2.5'],data=data, palette='PRGn')
plt.show()

你可能感兴趣的:(seaborn)