2013-04-08 23 views
11

Tôi có dữ liệu mà trông như thế này:3D Vẽ từ X, Y, Z dữ liệu, Excel hay cụ khác

1000 13 75.2 
1000 21 79.21 
1000 29 80.02 
5000 29 87.9 
5000 37 88.54 
5000 45 88.56 
10000 29 90.11 
10000 37 90.79 
10000 45 90.87 

Tôi muốn sử dụng cột đầu tiên là trục x nhãn, cột thứ hai là trục y nhãn và cột thứ ba làm giá trị z. Tôi muốn hiển thị một bề mặt theo cách đó. Cách tốt nhất để làm việc này là gì? Tôi đã thử Excel nhưng không thực sự nhận được bất cứ nơi nào. Có ai có bất cứ đề nghị cho một công cụ để làm điều này? Có ai biết làm thế nào để làm điều này trong Excel?

Cảm ơn

Trả lời

11

tôi đã kết thúc bằng matplotlib :)

from mpl_toolkits.mplot3d import Axes3D 
from matplotlib import cm 
import matplotlib.pyplot as plt 
import numpy as np 
x = [1000,1000,1000,1000,1000,5000,5000,5000,5000,5000,10000,10000,10000,10000,10000] 
y = [13,21,29,37,45,13,21,29,37,45,13,21,29,37,45] 
z = [75.2,79.21,80.02,81.2,81.62,84.79,87.38,87.9,88.54,88.56,88.34,89.66,90.11,90.79,90.87] 
fig = plt.figure() 
ax = fig.gca(projection='3d') 
ax.plot_trisurf(x, y, z, cmap=cm.jet, linewidth=0.2) 
plt.show() 

Kết quả là sweet

9

Bạn thực sự không thể hiển thị 3 cột dữ liệu dưới dạng 'bề mặt'. Chỉ có một cột dữ liệu 'Z' sẽ cung cấp cho bạn một dòng trong không gian 3 chiều, không phải là một bề mặt (Hoặc trong trường hợp dữ liệu của bạn, 3 dòng riêng biệt). Đối với Excel để có thể làm việc với các dữ liệu này, nó cần phải được định dạng như hình dưới đây:

 13 21 29  37 45 
1000 75.2        
1000  79.21        
1000    80.02      
5000    87.9     
5000     88.54    
5000       88.56    
10000   90.11  
10000     90.79 
10000       90.87 

Sau đó, để có được một bề mặt thực tế, bạn sẽ cần phải điền vào tất cả các tế bào thiếu với Z- thích hợp giá trị. Nếu bạn không có, thì tốt hơn bạn nên thể hiện điều này là 3 dòng 2D riêng biệt, bởi vì không có đủ dữ liệu cho một bề mặt.

Các đại diện 3D tốt nhất mà Excel sẽ cung cấp cho bạn các dữ liệu trên là khá khó hiểu:

enter image description here

Đại diện cho tập dữ liệu hạn chế này dưới dạng dữ liệu 2D có thể là một lựa chọn tốt hơn:

enter image description here

Là một lưu ý để tham khảo trong tương lai, các loại câu hỏi này thường hoạt động tốt hơn một chút trên superuser.com.

+0

biểu đồ cuối trông mát mẻ. Cảm ơn những người đứng đầu về superuser. –

+0

xem câu trả lời bên dưới. –

-1

Tại sao không hợp nhất các hàng có chứa các giá trị giống nhau không? -

  13 21 29  37 45 
  • 1000] -75,2 - 79,21 - 80,02

  • 5000] --------------------- 87.9 --- 88,54 ---- 88,56

  • 10000] ------------------- 90.11--90.97 ---- 90,87

Excel có thể sử dụng khá tốt ..

0

Bạn có thể sử dụng thư viện r cho âm mưu 3 D.

Các bước là:

Đầu tiên tạo khung dữ liệu bằng lệnh data.frame().

Tạo lô 3D bằng cách sử dụng thư viện scatterplot3D.

Hoặc Bạn cũng có thể xoay biểu đồ của mình bằng thư viện rgl bằng lệnh plot3d().

Hoặc bạn có thể sử dụng lệnh plot3d() từ thư viện rcmdr.

Trong MATLAB, bạn có thể sử dụng lệnh surf(), mesh() hoặc surfl() theo yêu cầu của bạn.

[http://in.mathworks.com/help/matlab/examples/creating-3-d-plots.html]

0

Bạn cũng có thể sử dụng Gnuplot mà cũng có sẵn từ gretl. Đặt x dữ liệu y z của bạn trên một văn bản nộp chèn sau

splot 'test.txt' using 1:2:3 with points palette pointsize 3 pointtype 7 

Sau đó, bạn có thể thiết lập nhãn vv sử dụng

set xlabel "xxx" rotate parallel 
set ylabel "yyy" rotate parallel 
set zlabel "zzz" rotate parallel 
set grid 
show grid 
unset key