2016-04-13 13 views
0

2次元データを画像にpythonで3dに印刷したいと思います。現在、私は2列のxとyの数字を持つファイルからデータを読み込んでいます。どんな援助も感謝します。 2dに私のデータを印刷するコードは次のようになります。2dデータを3dに印刷する方法、Pythonでファイルからデータを読み取る方法

import numpy as np 
import pylab as pl 
import matplotlib as mpl 

data1 = np.loadtxt('NL_extb_1.xye') 
data2 = np.loadtxt('NL_extb_2.xye') 
data3 = np.loadtxt('NL_extb_3.xye') 
data4 = np.loadtxt('NL_extb_4.xye') 
data5 = np.loadtxt('NL_extb_5.xye')  

pl.plot(data1[:,0], data1[:,1] , 'black') 
pl.plot(data2[:,0], data2[:,1], 'black') 
pl.plot(data3[:,0], data3[:,1] ,'black') 
pl.plot(data4[:,0], data4[:,1] ,'black') 
pl.plot(data5[:,0], data5[:,1] ,'black') 


pl.xlabel("2Theta") 
pl.ylabel("Counts") 

pl.show() 

enter image description here

答えて

0

mplot3dに作られたようなあなたの画像のプロットが見えます。 tutorialでそれを行う方法の例があります:

from mpl_toolkits.mplot3d import axes3d 
import matplotlib.pyplot as plt 
import numpy as np 

fig = plt.figure() 
ax = fig.add_subplot(111, projection='3d') 

X, Y, Z = axes3d.get_test_data(0.05) #<-- REPLACE THIS LINE WITH YOUR DATA 

ax.plot_wireframe(X, Y, Z, rstride=10, cstride=10) 
plt.show() 

0からrstrideまたはcstrideを設定すると、あなたが望むtypyプロットを取得します。

これで、正しい入力変数X, Y, Zを作成するだけです。私はあなたのdataiがすべてNと同じ長さであり、すべてxの列datai[:0]はすべてと仮定します。 (、次いでより多くの作業が必要とされない場合) そして

X, Y = np.meshgrid(range(1,6), data1[:,0])  
# or maybe the other way: 
# X, Y = np.meshgrid(data1[:,0], range(1,6)) 

ZX and Yと同じ形状の配列に連結データからすべてy列から成る(それらのすべては、N×5アレイであるべきですまたは5×N配列)。

関連する問題