2016-09-23 11 views
0

私はuni-variate kdensityプロットの3次元図を作成する方法を理解しようとしています。データ)。pythonのmatplotlibからkdensityプロットからx、yデータを抽出する方法

私はそれを直接行う方法を理解できないので、まずpythonでmatplotlibのkdensityプロットのx、yプロットデータを取得しようとしています。私はそれらを抽出した後、私は3次元プロットを作るために時間変数と一緒にそれらを使用することを望む。

私はMatlabでこれを行う方法を伝えるいくつかの記事を参照してください。 Pythonで

x=get(h,'Xdata') 
y=get(h,'Ydata') 

方法について:すべての参照は、基礎となる図からXdataYdataを取得しますか?

+1

プロットをどのように生成しましたか?これまでのコードを表示できますか?プロットがどのように生成されたかによって、それが可能ではあるが、図から取得するよりも簡単な方法があるかもしれない。 – TheBlackCat

+0

私はSeabornをプロットに使用していましたが、私の髪を引き裂いてそのフィールドと方法を分析していました。私は以下にリンクした別の投稿からそれをどうやって行うのかを知った。 –

答えて

0

kdensityプロットの仕組みはわかりませんが、matplotlib.pyplot.plotは、実際にはXとYのデータが格納されている追加のLine2Dオブジェクトのリストを返します。 MATLABと同じように動作させることができたと思います。

import matplotlib.pyplot as plt 

h = plt.plot([1,2,3],[2,4,6]) # [<matplotlib.lines.Line2D object at 0x021DA9F0>] 
x = h[0].get_xdata() # [1,2,3] 
y = h[0].get_ydata() # [2,4,6] 
0

回答はすでに別のスレッド(How to create a density plot in matplotlib?)に含まれていました。一連のデータからkdensity xとyのセットを取得するのはかなり簡単です。

import matplotlib.pyplot as plt 
import numpy as np 
from scipy.stats import gaussian_kde 
data = [1.5]*7 + [2.5]*2 + [3.5]*8 + [4.5]*3 + [5.5]*1 + [6.5]*8 # data is a set of univariate data 
xs = np.linspace(0,max(data),200) # This 200 sets the # of x (and so also y) points of the kdensity plot 
density = gaussian_kde(data) 
density.covariance_factor = lambda : .25 
density._compute_covariance() 
ys = density(xs) 
plt.plot(xs,ys) 

これがあります。 kdensityプロットとその基礎となるx、yデータです。

関連する問題