2

Python用のggplotのポートを試しています。非常に基本的なグラフィックスはそれほど問題なく実行できますが、より凝ったものを試してみると、非常に複雑になります。

この場合、「x」に沿って 3 つの変数 A、B、C を同時にプロットしたいと考えています。これは、以下の簡単なコードで実行できます。ただし、ディスプレイの背景に 4 番目の変数 (「Back」と呼ばれる) を一連の長方形の色 (並べ替えの色のグラデーションを使用) として表示したいと思います。この明らかに悪いPhotoshopのモックアップのように見えるもの:https://www.dropbox.com/s/euqek8e6nebmau6/Capture%20d%27%C3%A9cran%202013-12-02%2014.29.16.png

Python用のggplotでこの種のグラフィックを実現する簡単な方法はありますか?

質問への回答に役立つ場合は、データを含む 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 に答える