python--seaborn折线图

seaborn是专门用于统计数据可视化的包,可媲美R语言中的ggplot2包。本文介绍用seaborn绘制折线图。

环境

  • python3.9
  • win10 64bit
  • seaborn==0.11.1
  • matplotlib==3.3.4
  • pandas==1.2.1

在seaborn中,绘制折线图的函数有lineplotrelplot

import seaborn as sns
import pandas as pd
import matplotlib.pyplot as plt
# 设置
pd.options.display.notebook_repr_html=False  # 表格显示
plt.rcParams['figure.dpi'] = 75  # 图形分辨率
sns.set_theme(style='darkgrid')  # 图形主题

单折线图

简单方式是传入pandas Series,其索引会成为x轴,值为y轴。

s=pd.Series([3,15,9,12,4],name='value')
sns.lineplot(data=s)
plt.show()
line_5_0.png

另一种方式是传入pandas dataFrame,通过设置x,y绘制。

df=pd.DataFrame(dict(x=range(5),y=[3,15,9,12,4]))
sns.lineplot(data=df,x='x',y='y')
plt.show()
line_7_0.png

置信区间折线图

当折线图中,x轴对应多个y轴数据时,seaborn会自动绘制置信区间。

# 加载数据
flights=pd.read_csv(r'https://gitee.com/nicedouble/seaborn-data/raw/master/flights.csv')
flights.head()
   year     month  passengers
0  1949   January         112
1  1949  February         118
2  1949     March         132
3  1949     April         129
4  1949       May         121
# 含有置信区间的折线图
sns.lineplot(data=flights,x='year',y='passengers')
plt.show()
line_10_0.png

图中的阴影表示置信区间,默认是95%,可以通过ci参数修改置信区间。

# 显示置信区间为85%。
sns.lineplot(data=flights,x='year',y='passengers',ci=85)
plt.show()
line_12_0.png

多折线图

在一个图中绘制多条折线图。需要传入的数据为pandas dataFrame。

数据框为宽型数据或长型数据都可以绘制,这点要优于R语言的ggplot2。

当传入长型数据时,除了需要设置xy参数外,还需要设置huesizestyle参数。

  • hue:颜色
  • size:线宽
  • style:样式
# 长型数据多折线图
sns.lineplot(data=flights,x='year',y='passengers',hue='month',style='month')
plt.show()
line_14_0.png

seaborn可以直接对宽型数据绘制多折线图,其索引成为x轴,所有的列自动绘制成多折线。

# 数据变成宽型数据
flights_wide = flights.pivot("year", "month", "passengers")
flights_wide.head()
month  April  August  December  February  January  July  June  March  May  \
year                                                                        
1949     129     148       118       118      112   148   135    132  121   
1950     135     170       140       126      115   170   149    141  125   
1951     163     199       166       150      145   199   178    178  172   
1952     181     242       194       180      171   230   218    193  183   
1953     235     272       201       196      196   264   243    236  229   

month  November  October  September  
year                                 
1949        104      119        136  
1950        114      133        158  
1951        146      162        184  
1952        172      191        209  
1953        180      211        237  
# 宽型数据多折线图
sns.lineplot(data=flights_wide)
plt.show()
line_17_0.png

设置makers=True参数可以显示散点。

# 增加散点
sns.lineplot(data=flights_wide,markers=True)
plt.show()
line_19_0.png

分面折线图

分面折线图的绘制,需要用relplot函数。设置kind="line"表示绘制折线图,设置colrow控制分面行为。

# 加载数据
fmri=pd.read_csv(r'https://gitee.com/nicedouble/seaborn-data/raw/master/fmri.csv')
fmri.head()
  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
# 按列分面折线图
sns.relplot(data=fmri, x="timepoint", y="signal",col="region", hue="event",
            style="event",kind="line")
plt.show()
line_22_0.png

更多参考seaborn折线图

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 159,835评论 4 364
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,598评论 1 295
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 109,569评论 0 244
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 44,159评论 0 213
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,533评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,710评论 1 222
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,923评论 2 313
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,674评论 0 203
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,421评论 1 246
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,622评论 2 245
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,115评论 1 260
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,428评论 2 254
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,114评论 3 238
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,097评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,875评论 0 197
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,753评论 2 276
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,649评论 2 271

推荐阅读更多精彩内容