【问题标题】:plot panel data with seaborn使用 seaborn 绘制面板数据
【发布时间】:2016-02-12 04:50:08
【问题描述】:

这很可能是一个非常简单的问题。我有一个这样的面板数据(美国婴儿姓名数据):

    Year    Name    Count
0   1960    Betty   6503
1   1960    Thelma  838
2   1961    Betty   5578
3   1961    Thelma  773
4   1962    Betty   4766
5   1962    Thelma  750
...

我只想绘制每个名字的时间趋势,我可以用seaborn 来做吗?我以为我可以在seaborn 中使用tsplot(),但似乎这个功能不适合我所追求的。而且我没有看到这个函数的任何文档,只有一个 API。

我可以用matplotlib 做到这一点(使用pandas):

grouped = data.groupby('Name')
for key, group in grouped:
    plt.plot(group.Year, group.Count, label=key)
plt.legend();

但我现在正在学习seaborn,所以我想知道seaborn 中是否有一些方法可以做到这一点。

【问题讨论】:

  • 我不能确切地说为什么你的问题被否决了,但我的猜测是部分原因是因为它们没有说明什么类型的情节,或者你希望最终输出是什么看起来像。还有你需要的关于seaborn的东西吗?这是tsplot()documentation的链接
  • 您好约翰,感谢您的回复。我自己也不知道为什么它被否决了。我说我想要数据中每个名字的时间趋势,并且我已经给出了数据和代码来复制绘图的样子。我不知道,这本身可能是一个糟糕的问题。
  • 此外,我已经阅读了seaborn 教程,它写得非常清晰,我真的很喜欢它,这也是我想彻底学习这个包的部分原因。但是tsplot()函数没有在教程中介绍,你给的链接是函数的api,有所有的参数和例子,但没有太多解释。我以前读过它,并认为这不是我想要的功能。我会保持这个问题的开放性,以防其他人可能会觉得不赞成,或者好心地给出解释。再次感谢。

标签: python pandas matplotlib seaborn


【解决方案1】:

如果您只是想进行常规绘图,则应该使用 matplotlib。我发现与常规绘图最接近的是 seaborn 的带状绘图功能。由于自定义,我实际上刚刚回到使用 matplotlib。我只是使用 seaborn 样式让我的图表看起来很漂亮。

这里是 seaborn 的教程: http://stanford.edu/~mwaskom/software/seaborn/tutorial.html#tutorial

【讨论】:

  • 谢谢! stripplot() 用于分类数据,但我想要一个时间趋势,所以不完全是我想要的。而tsplot 不在本教程中。我看看seaborn有没有选项,如果没有,我就回matplotlib
猜你喜欢
  • 2020-06-22
  • 1970-01-01
  • 2018-07-05
  • 2014-05-12
  • 2016-05-12
  • 1970-01-01
  • 1970-01-01
  • 2015-12-31
  • 2017-02-21
相关资源
最近更新 更多