2

我正在试验 ggplot 的 Python 端口。我可以毫不费力地制作非常基本的图形,但是当我尝试一些更花哨的东西时,它变得非常复杂。

在这种情况下,我想沿“x”同时绘制 3 个变量 A、B 和 C,这可以通过下面的简单代码来完成。但是,我想在显示器的背景中显示第四个变量(称为“Back”),作为一系列矩形颜色(使用颜色渐变)。可能看起来有点像这个糟糕的 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

4

1 回答 1

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")
于 2013-12-03T08:52:24.853 回答