在同一个ggplot中有两种图形

时间:2013-12-02 22:39:04

标签: r ggplot2 python-ggplot

我正在尝试使用ggplot的Python端口。我可以做非常基本的图形而不会有太多麻烦,但是当我尝试更加花哨时,它会变得非常复杂。

在这种情况下,我想在“x”的同时绘制3个变量A,B和C,这可以通过下面的简单代码完成。但是,我想在显示器的背景中显示第四个变量(称为“后退”),作为一系列矩形颜色(使用颜色渐变排序)。 可能看起来有点像这个令人难以置信的糟糕的Photoshop商店模型:https://www.dropbox.com/s/euqek8e6nebmau6/Capture%20d%27%C3%A9cran%202013-12-02%2014.29.16.png

使用ggplot for python有没有直接的方法来完成这种图形?

如果它可以帮助回答问题,这里是包含数据的xls文件:https://dl.dropboxusercontent.com/u/73950/B.xls

以下是代码:

from ggplot import *
import pandas as pd
import statsmodels

xl = pd.ExcelFile('B.xls')
df = xl.parse("sheet1")

df_lng = pd.melt(df[['x', 'A', 'B', 'C','Back']], id_vars='x')
print ggplot(aes(x='x', y='value', colour='variable'), data=df_lng) + geom_line()
plt.show(1)

哦,这是一篇我认为可以帮助解决问题的帖子。这是在R中完成的...... https://gist.github.com/dsparks/3866629

1 个答案:

答案 0 :(得分:3)

这是执行此操作的R代码。不知道如何使用Python,但看起来这将是类似的。

ggplot(aes(x=x), data=df_lng) + geom_line(aes(y=value, colour=variable), size=1.3) +
  geom_rect(aes(fill=factor(Back), xmin=x, xmax=x+1, ymin=0, ymax=max(value)*1.07), alpha=.1) + 
  scale_fill_discrete(guide="none")