向seaborn传递matplotlib绘图参数,精细地控制seaborn输出图形
1. matplotlib與seaborn的關系
matplotlib繪圖參數非常多,可以通過參數精細的控制圖形輸出,這是它的優點。但同時也很復雜,繪一個圖常常需要很多行代碼,需要使用者熟悉眾多圖形控制參數,不容易上手,這是它的缺點。seaborn是基于matplotlib的數據可視化軟件包,本身并不畫圖,而是調用matplotlib進行繪圖,在做探索式數據分析時,特別是對于dataframe數據結構,seaborn比matplotlib高效得多,簡單的圖只要1-2行代碼就可以完成。為了簡單易用,將很多matplotlib的用于圖形精細控制、跟數據分析關系不大的參數(如線寬、數據點大小,透明度等),放到一個參數集合中提供調用,因此如果在使用seaborn進行數據分析時,如果需要對圖形對進行一些小對修改,往往需要向seaborn傳遞matplotlib參數。
2. 向seanborn畫圖函數傳遞matplotlib繪圖參數
以seanborn 的lmplot為例,說明如何向seanborn畫圖函數傳遞matplotlib參數。
seaborn.lmplot(x,?y,?data,?hue=None,?col=None,?row=None,?...?scatter_kws=None,?line_kws=None,?size=None)
其中scatter_kws=None,?line_kws=None是可以用字典等格式作向seaborn傳遞matplotlib參數。
sns.set(style="darkgrid") grid = sns.lmplot(x='YEARS_EXPERIENCE', y='BASE_SALARY', hue='GENDER', data=employee)圖形輸出如下:
數據點太多來,重合比較厲害,想把數據點等大小調小一點,但 sns.lmplot并沒有控制數據點大小但參數,需要調用matplotlib.pyplot.scatter的參數。
matplotlib.pyplot.scatter的參數如下:
matplotlib.pyplot.scatter(x,?y,?s=None,?c=None,?marker=None,?cmap=None,?norm=None,?vmin=None,?vmax=None,?alpha=None,?linewidths=None,?verts=None,?edgecolors=None,?*,?plotnonfinite=False,?data=None,?**kwargs)
其中,參數s控制數據點的大小,我們可以在seaborn中通過scatter_kws={'s':10}可以將matplotlib參數s=10傳遞給seaborn。
sns.set(style="darkgrid") grid = sns.lmplot(x='YEARS_EXPERIENCE', y='BASE_SALARY', hue='GENDER', scatter_kws={'s':10}, data=employee)圖形輸出如下:
?
總結
以上是生活随笔為你收集整理的向seaborn传递matplotlib绘图参数,精细地控制seaborn输出图形的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: R中千分位分隔符数值(美式数值)读取
- 下一篇: 小班教案《各种各样的蛋宝宝》反思