2017-07-13 19 views
4

私は大きなデータセット(8500000X50)を持っているとしましょう。そして、プロットX(日付)とY(特定の日に撮影された測定値)を散布したいと思います。大量のデータを散布図

私はこれだけ得ることができる: enter image description here

data_X = data['date_local'] 
data_Y = data['arithmetic_mean'] 
data_Y = data_Y.round(1) 
data_Y = data_Y.astype(int) 
data_X = data_X.astype(int) 
sns.regplot(data_X, data_Y, data=data) 
plt.show() 

私はstackoverflowの時に見つけた何とか「同じ」の質問によると、私は私のデータをシャッフルすることができ、あるいは、例えば1000のランダムな値を取り、それらをプロットします。 しかし、すべてのX(特定の測定が行われた日付)が実際の(Y測定)に対応するように実装する方法。

+0

あなたができるようになりますだと思います、が、 8500000点を8500点よりもグラフ上にプロットした方がいいでしょうか? – roganjosh

+1

ヒートマップを使用することをお勧めします。データを消去する必要はなく、視覚効果を高めることができます。 –

答えて

4
は、あなたの質問に答えるまず

regplot Iで

import matplotlib.pyplot as plt 
import matplotlib.dates as mdates 
from datetime import datetime 
import numpy as np 
import pandas as pd 
import seaborn as sns 

dates = pd.date_range('20080101', periods=10000, freq="D") 
df = pd.DataFrame({"dates": dates, "data": np.random.randn(10000)}) 

dfSample = df.sample(1000) # This is the importante line 
xdataSample, ydataSample = dfSample["dates"], dfSample["data"] 

sns.regplot(x=mdates.date2num(xdataSample.astype(datetime)), y=ydataSample) 
plt.show() 

あなたのdateframeからサンプルを取得するためにpandas.DataFrame.sampleを使用して、regplotを使用する必要がありますが、以下のランダムなデータを使用して小さな例ですdatetimeの型のために私のXデータで変換を実行してください、あなたのデータに応じてではなく、が必要であることに注意してください。

ので、代わりにこのような何かを:今


、提案:

あなたはこのような何かを得るでしょうsns.jointplotを使用し、これドキュメントから、kindのパラメータがあります。

種類:{「散布」| "reg" | "resid" | "kde" | "hex"}、オプション

描画する種類。

ここで作成するのは、matplotlibのhist2dと似ていますが、データセット全体を使用してヒートマップのようなものを作成します。ランダムデータを使用した例:

dates = pd.date_range('20080101', periods=10000, freq="D") 
df = pd.DataFrame({"dates": dates, "data": np.random.randn(10000)}) 

xdata, ydata = df["dates"], df["data"] 
sns.jointplot(x=mdates.date2num(xdata.astype(datetime)), y=ydata, kind="kde") 

plt.show() 

これはまた、ご希望の軸に沿って分布を見るために良いされており、この画像のような結果になります。