gpt4 book ai didi

python - 多个样本的 3D 曲面绘图

转载 作者:行者123 更新时间:2023-12-01 05:12:54 25 4
gpt4 key购买 nike

我有一个包含多行和多列的 CSV 文件。例如,假设我有以下 CSV(制表符分隔)文件:

    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

我已经检查了 pylab 库中的曲面图方法 here ,但我感觉我想做的和他们给出的例子不一样。因为我希望 X 轴是 CSV 第一列中的名称(Log1、Log2...Log4),Y 轴显示列名称(例如 Sample1、Sample2、... Sample5)。这些值将决定表面在 3D 绘图中的外观。

所以我想知道如何在 python 或任何其他工具中进行 3D 曲面绘图?任何答复将不胜感激。

编辑:

感谢@anon 下面的回答,我编写了以下 python 代码,但我不清楚如何将 CSV 文件中的值分配给 (X, Y, Z) 坐标。我在下面执行此操作的方法是按 x_axis (X 标签列表)的大小和 y_axis (Y 标签列表)的大小分配 X、Y 值,Z 值是我的 CSV 中的实际数字文件。但我下面的代码不起作用 - 需要一些额外的帮助。

csv_file_path='/path/to/my/CSV/my_file.csv'    
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


first_line = True # skip the first line which is the header

for row in datafile:
print row[0]
summ = 0

if first_line:
y_ax = row[1:]
print y_ax
first_line = False
continue

x_ax.append(row[0])
row_data = row[1:]
data.append(row_data)

X = range(len(x_ax)) # use the length of x_ax as the X coordinate
Y = range(len(y_ax)) # use the length of y_ax as the Y coordinate


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("Frequencies Surface Plotting")

surf = ax.plot_surface(X, Y, data, 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()

来自 Pylab 的示例: enter image description here

最佳答案

您可以将 xy 轴标签更改为您想要的。例如:

fig = plt.figure(figsize=(14,6))
ax = fig.add_subplot(1, 2, 1, projection='3d')
x_ax = ["Log1", "Log2"] # etc ... just parse what you need from the CSV file
ax.set_xticklabels(x_ax)
y_ax = ["Sample1","Sample2"] # etc... just parse what you need from the CSV file
ax.set_yticklabels(y_ax)
plt.show()

产品:

Changed axis

这是你想要的吗?

关于python - 多个样本的 3D 曲面绘图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23797516/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com