W***o 发帖数: 6519 | 1 我有一个csv文件,里面有多行多栏的数据,我想把这些数据通过3D surface plot表述
出来(x轴坐标就用第一列每行的cell 内容,比如Log1, Log2...; y轴就用第一行的cell
content (Sample1, Sample2 ...),z就用下面表格里的数据。我想到用matplotlib,
但是又不太会用,想请教一下。
Measure# Sample1 Sample2 Sample3 Sample4 Sample5
Log1 2.3 3.3 4.5 5.6 6.7
Log2 3.5 6.7 10.0 22.1 30
Log3 4.2 4.5 6.7 8.9 9.1
Log4 4.5 8.9 10.2 11.8 14.7
import csv
from matplotlib import pyplot as plt
import pylab
import numpy as np
from mpl_toolkits.mplot3d import Axes3D
csv_file_path='/path/to/my/CSV/my_file.csv' # read in this CSV file
mFile = open(csv_file_path, 'rb')
datafile = list(csv.reader(mFile, delimiter='t'))
x_ax = [] # a list of X labels
y_ax = [] # a list of Y labels
row_data = [] # a list of row values
Z = [] # a list of row_data (a row of data)
#parse the CSV file:
first_line = True # skip the first line which is the header
for row in datafile:
if first_line:
y_ax = row[1:]
print y_ax
first_line = False
continue
x_ax.append(row[0]) # X-axis labels
row_data = row[1:]
Z.append(row_data)
#prepare plotting
fig = plt.figure(figsize=(200, 6))
ax = fig.add_subplot(1, 2, 1, projection='3d')
ax.set_xticklabels(x_ax)
ax.set_yticklabels(y_ax)
ax.set_title("my title of chart")
surf = ax.plot_surface(X, Y, Z, rstride=1, cstride=1, cmap=cm.coolwarm,
linewidth=0, antialiased=False)
ax.set_zlim(0, 100)
fig.colorbar(surf, shrink = 0.5, aspect = 5)
plt.show()
我对python不懂太多,想请教一下应该怎么画这样的3D surface? 希望效果类似这个图:
谢谢 | m******a 发帖数: 19 | | w*x 发帖数: 518 | 3 没明白,你的code不都写出来了么?
都用matplotlib了, csv就用
import numpy as np
data = np.genfromtxt('fname.csv', delimiter=',')
来读吧…… | W***o 发帖数: 6519 | 4 the code does not work, which is why I posted her for help. thanks
【在 w*x 的大作中提到】 : 没明白,你的code不都写出来了么? : 都用matplotlib了, csv就用 : import numpy as np : data = np.genfromtxt('fname.csv', delimiter=',') : 来读吧……
| W***o 发帖数: 6519 | 5 谢谢,发现这个NP的genfromtxt都CSV很方便啊,还想请教一下,有没有按column读CSV
的方法可以调用?
【在 w*x 的大作中提到】 : 没明白,你的code不都写出来了么? : 都用matplotlib了, csv就用 : import numpy as np : data = np.genfromtxt('fname.csv', delimiter=',') : 来读吧……
| T****n 发帖数: 6187 | 6 你是说按column name读?文档有example的
http://docs.scipy.org/doc/numpy/reference/generated/numpy.genfr
CSV
【在 W***o 的大作中提到】 : 谢谢,发现这个NP的genfromtxt都CSV很方便啊,还想请教一下,有没有按column读CSV : 的方法可以调用?
| w*x 发帖数: 518 | 7 传入keyword写unpack=True就可以,看文档~
CSV
【在 W***o 的大作中提到】 : 谢谢,发现这个NP的genfromtxt都CSV很方便啊,还想请教一下,有没有按column读CSV : 的方法可以调用?
|
|