9

我用 Python 中的一些数据做了一个曲面图。

在此处输入图像描述

现在我试图改变这种情节的风格。但不幸的是,我被困在线条颜色中。它的默认值为黑色,但我想让它变成红色或任何其他颜色。

我的代码是:

from mpl_toolkits.mplot3d import Axes3D

import matplotlib.pyplot as plt
from matplotlib import cm
import numpy as np

data=np.loadtxt("test.txt")


def formateU(data):
   U = np.zeros((20,20))
   for value in data:
      U[value[0],value[1]] = value[2]
   return U

U = formateU(data)


y,x=np.meshgrid(np.linspace(0.,19,20),np.linspace(0.,19,20))

fig = plt.figure()

ax=plt.axes(projection='3d')

ax.plot_surface(x,y,U,rstride=1,cstride=1,alpha=0,linewidth=0.5)

ax.view_init(30, 45)

plt.savefig("test.png")

plt.show()

很明显,它必须是一个额外的论点:

ax.plot_surface(x,y,U,rstride=1,cstride=1,alpha=0,linewidth=0.5)

但我无法弄清楚。

你能帮我吗?

test.txt位于http://www.file-upload.net/download-8564062/test.txt.html _

4

2 回答 2

9

如何找到所需的关键字:
plot_surface方法创建一个基于PolyCollectionsPoly3DCollection。后者接收关键字如(或)。edgecolorsfacecolors

在您的示例中:

 ax.plot_surface(x,y,U,rstride=1,cstride=1,alpha=0,linewidth=0.5, edgecolors='r')

在此处输入图像描述

于 2014-01-28T22:47:14.203 回答
3

由于您已将 设置alpha为零并且没有绘制表面图块,因此您可能需要考虑plot_wireframe改用 wherecolor设置线条颜色(而不是 中的图块颜色plot_surface)。

但正如 Jakob 所建议的那样,它edgecolors也将起作用。

于 2014-01-28T22:40:16.590 回答