2017-01-18 10 views
2

私は.csvからインポートしたいくつかのデータを探索しようとしています。ファイル内には約100社の「会社」があり、それぞれに「SG」と「RG」という指標があります。データには、これらのメトリックの数年間にわたるデータが含まれています。パンダデータフレームを使用して海底で時系列をプロットする

私は、特定の「会社」の同じチャート上に「SG」と「RG」の行をオーバーレイするためにいくつかの海軍時系列チャートを作成しようとしています。この画像は、私が何を意味するか説明する必要があります:

Summary of the lux dataframe

は、誰も私に、このようなプロットを作成する方法についていくつかの指針を与えることができますか?たとえば、 'Barbour' Company(上の画像)を 'SG'と 'RG'の2つの行でプロットします。

%matplotlib inline 
import numpy as np 
import pandas as pd 
import matplotlib.pyplot as plt 
import seaborn as sns 

答えて

0

でデータを運ぶために一般的に優れている:

(注、すべてのデータ型は、次のような、浮動小数点数ですが、そこにいくつかのNaNを持つ、と私はアップフロント通常のものが含まれていますシーボーンを使用するときは長い形である(一般的に)。例外的にヒートマップを使用する場合は、クリーンな2変数テーブルまたはマトリックスにピボットする必要があります。

とにかく長い形式では、各行はちょうど1つの観測値を持ち、サポート機能はこれらの行の単なる追加の列です。特定の場合、各行にはいくつかの観測値があります(y耳、会社と指標を考慮して)、これを長形に変換したいと思います。ここでは、年は単にあなたの観察のもう一つの特徴です。幸いにも、その正確な目的のためにpnd.meltがあなたを助けることができます。

のは、あなたに基づいて、一般的なpnd.DataFrameを見てみましょう:

In [1]: import pandas as pnd 
In [2]: import seaborn as sns 

In [3]: df = DataFrame.from_dict({ 
    ...:  'company': ['A', 'B', 'A', 'B', 'C'], 
    ...:  'metric': ['SG', 'SG', 'RG', 'RG', 'SG'], 
    ...:  '2005': [1, 2, 3, 4, 5], 
    ...:  '2006': [4, 5, 6, 7, 8]})  
In [4]: df 
Out[4]: 
    2005 2006 company metric 
0  1  4  A  SG 
1  2  5  B  SG 
2  3  6  A  RG 
3  4  7  B  RG 
4  5  8  C  SG 

pnd.meltを使用して長い形式への変換:

sns.factorplot
In [5]: df_melt = pnd.melt(df, 
          id_vars=['company', 'metric'], 
          value_vars=['2005', '2006'], 
          var_name='year', 
          value_name='value') 
In [6]: df_melt 
Out[6]: 
    company metric year value 
0  A  SG 2005  1 
1  B  SG 2005  2 
2  A  RG 2005  3 
3  B  RG 2005  4 
4  C  SG 2005  5 
5  A  SG 2006  4 
6  B  SG 2006  5 
7  A  RG 2006  6 
8  B  RG 2006  7 
9  C  SG 2006  8 

そして最後に、あなたはX、のようなパラメータを利用することができます、色相、行、列を使用して、因子分解を行ってデータを視覚化します。

In [7]: sns.factorplot(data=df_melt, 
         x='year', 
         y='value', 
         hue='metric', 
         col='company') 

Out[7]: <seaborn.axisgrid.FacetGrid at 0x7f6286fee890> 

In [8]: from matplotlib import pyplot as plt 
In [9]: plt.show() 

figure1

+0

ピーター - 時間を割いて助けてくれてありがとう。私はこれを読んで、あなたの指導に従います。このコミュニティに新しいことは、私は見知らぬ人の優しさに本当に感謝しています。再度、感謝します。 – NickP

+0

心配しないで、幸せを助けて幸せです! – peterfields

関連する問題