title: 学习 seaborn [01]: 散点图 & 线型图 slug: seaborn-scatter-line date: 2020-11-30 tags:
表示统计关系的图分为散点图和线型图两类。统一的FacetGrid图级接口函数为relplot()。
pythonimport seaborn as sns
import pandas as pd
%matplotlib inline
# seaborn预设主题:darkgrid(默认),whitegrid,dark,white 以及 ticks
sns.set()
# 导入数据集。由于sns.load_dataset连接不上服务器,使用pandas导入本地下载的数据集
tips = pd.read_csv('seaborn-data-master/tips.csv')
display(tips)
total_bill | tip | sex | smoker | day | time | size | |
---|---|---|---|---|---|---|---|
0 | 16.99 | 1.01 | Female | No | Sun | Dinner | 2 |
1 | 10.34 | 1.66 | Male | No | Sun | Dinner | 3 |
2 | 21.01 | 3.50 | Male | No | Sun | Dinner | 3 |
3 | 23.68 | 3.31 | Male | No | Sun | Dinner | 2 |
4 | 24.59 | 3.61 | Female | No | Sun | Dinner | 4 |
... | ... | ... | ... | ... | ... | ... | ... |
239 | 29.03 | 5.92 | Male | No | Sat | Dinner | 3 |
240 | 27.18 | 2.00 | Female | Yes | Sat | Dinner | 2 |
241 | 22.67 | 2.00 | Male | Yes | Sat | Dinner | 2 |
242 | 17.82 | 1.75 | Male | No | Sat | Dinner | 2 |
243 | 18.78 | 3.00 | Female | No | Thur | Dinner | 2 |
244 rows × 7 columns
x、y必须是数值型
绘制散点图方法有两种:
python# 绘制散点图,x,y必须是数值型
g = sns.relplot(x='total_bill', y='tip', data=tips)
第三维数据必须是离散、有限的。
pythong = sns.relplot(x='total_bill', y='tip', hue='sex', data=tips)
pythong = sns.relplot(x='total_bill', y='tip', size='sex', data=tips)
pythong = sns.relplot(x='total_bill', y='tip', style='sex', data=tips)
一般从元素的颜色、尺寸、样式三这种选其二同时使用,三者同时使用时图像在视觉上比较混乱。
pythong = sns.relplot(x='total_bill', y='tip', hue='day', style='sex', data=tips)
col_wrap
参数控制每列的图像数量。
col_order
参数控制图像顺序。
pythong = sns.relplot(x='total_bill', y='tip', col='day',
col_wrap=2, col_order=['Thur', 'Sat', 'Fri', 'Sun'],
data=tips)
pythong = sns.relplot(x='total_bill', y='tip', col='smoker', row='sex', data=tips)
除x、y以外,元素颜色、样式、尺寸三选其二,加上行、列,可以表示第三、四、五、六维变量。
pythong = sns.relplot(x='total_bill', y='tip', hue='day',
style='time', col='smoker', row='sex', data=tips)
x、y必须是数值型
绘制散点图方法有两种:
pythonfmri = pd.read_csv('seaborn-data-master/fmri.csv')
display(fmri)
subject | timepoint | event | region | signal | |
---|---|---|---|---|---|
0 | s13 | 18 | stim | parietal | -0.017552 |
1 | s5 | 14 | stim | parietal | -0.080883 |
2 | s12 | 18 | stim | parietal | -0.081033 |
3 | s11 | 18 | stim | parietal | -0.046134 |
4 | s10 | 18 | stim | parietal | -0.037970 |
... | ... | ... | ... | ... | ... |
1059 | s0 | 8 | cue | frontal | 0.018165 |
1060 | s13 | 7 | cue | frontal | -0.029130 |
1061 | s12 | 7 | cue | frontal | -0.004939 |
1062 | s11 | 7 | cue | frontal | -0.025367 |
1063 | s0 | 0 | cue | parietal | -0.006899 |
1064 rows × 5 columns
pythonax = sns.lineplot(x='timepoint', y='signal', data=fmri)
类似散点图,可使用hue、style、size来表示第三、第四维变量,也可使用relplot()增加多行多列表示更多维度变量。
pythonax = sns.lineplot(x='timepoint', y='signal', hue='event', style='region', data=fmri)
style
参数默认改变线型,使用markers
和dashes
参数改变标记样式,保持线型不变。
pythonax = sns.lineplot(x='timepoint', y='signal', hue='event',
style='region', markers=True, dashes=False, data=fmri)
err_style
控制是否用半透明误差带或离散误差棒绘制置信区间,取值有两个:
ci
控制置信区间大小,取值为整数、sd或None。
pythonax = sns.lineplot(x='timepoint', y='signal', hue='event',
err_style='bars', ci=68, data=fmri)
本文作者:tsingk
本文链接:
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!