关于主题:Using matplotlib Polycollection to plot data from csv files。 我想让我的绘图,但与日志空间数据从x轴!你知道吗
我做了这个:
import matplotlib.pyplot as plt
from matplotlib.collections import PolyCollection
from mpl_toolkits.mplot3d import axes3d
import numpy as np
data1=eval(input())
freq_data = np.logspace(-15,15,500)[:,None]*np.ones(10)[None,:]
amp_data = data1
rad_data = np.array([1,2,3,4,5,6,7,8,9,10])
verts = []
for irad in range(len(rad_data)):
xs = np.concatenate([[freq_data[0,irad]], freq_data[:,irad], [freq_data[-1,irad]]])
ys = np.concatenate([[0],amp_data[:,irad],[0]])
verts.append(list(zip(xs, ys)))
poly = PolyCollection(verts)
poly.set_alpha(0.7)
fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
# The zdir keyword makes it plot the "z" vertex dimension (radius)
# along the y axis. The zs keyword sets each polygon at the
# correct radius value.
ax.add_collection3d(poly, zs=rad_data, zdir='y')
ax.set_xlabel('symlog')
ax.set_xlim(freq_data.min(), freq_data.max())
ax.set_xlabel('Frequency')
ax.set_ylim(rad_data.min(), rad_data.max())
ax.set_ylabel('Radius')
ax.set_zlim(amp_data.min(), amp_data.max())
ax.set_zlabel('Amplitude')
plt.show()
但我还是得不到我想要的。所以我想画出数据和频率的关系,频率是对数间隔的。你知道吗
附件是我的输入数据:https://www.dropbox.com/s/63gs0n365mal3t6/test_data.mat?dl=0 你可以下载并输入到程序中。你知道吗
注:我试过用随机数据代替输入,它确实给出了一个正确的图。所以,如果你想测试代码,请使用附加的数据。你知道吗
目前没有回答
相关问题 更多 >
编程相关推荐