我试图用python在不同的行中绘制3D散点图。在
数组“seasons”包含四个不同的数据集,我尝试调用每个数据集并分别绘制3D散点图。在
下面的代码只给出了一个数据集seasons[df]的结果。在
seasons = [summer_spike_df,Autumn_spike_df,Winter_spike_df,Spring_spike_df]
colors = ['b', 'orange', 'g', 'r', 'c', 'm', 'y', 'k', 'Brown', 'ForestGreen']
ncenters = 3
for df in (seasons):
alldata = np.vstack((df['time_of_day'], df['Height'],df['resolution']))
cntr, u, u0, d, jm, p, fpc = fuzz.cluster.cmeans(
alldata, ncenters, 3, error=0.005, maxiter=1000, init=None)
fpcs = []
fpcs.append(fpc)
for pt in cntr:
ax.scatter(pt[0], pt[1],pt[2],color='r')
cluster_membership = np.argmax(u, axis=0)
for j in range(ncenters):
ax.scatter(df['time_of_day'][cluster_membership == j],
df['Height'][cluster_membership == j],
df['resolution'][cluster_membership == j],
'.',
color=colors[j], edgecolor='k',marker='o', s=20, lw=0, alpha=0.7)
ax.set_title('Centers = {0}; FPC = {1:.2f}'.format(ncenters, fpc))
ax.axis('on')
#ax.set_ylim([0,6])
ax.grid()
plt.show()
如果我把plt.show()
和plt.close()
放在for循环之外,那么它会在同一个图中显示所有的散点。在
您不会显示您在何处定义
ax
。但是,要将数据集放入单独的三维散点图中,需要在单独的轴上定义它们。在例如,您可以在一个图形中定义4个单独的轴,并将每个数据帧显式地绘制为单独的轴:
相关问题 更多 >
编程相关推荐