首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用matplotlib的Python 4D绘图-读取和绘制数组时的混淆

使用matplotlib的Python 4D绘图-读取和绘制数组时的混淆
EN

Stack Overflow用户
提问于 2018-10-02 06:46:20
回答 1查看 179关注 0票数 2

我有一份清单如下-

代码语言:javascript
复制
array1 = [[1,2,3,0.56],[12,5,30,0.23],[10,12,17,89.65]]

这代表着协调- [x1,y1,z1,c1,x2,y2,z2,c2,x3,y3,z3,c3].我使用了4D图与第4 dimensionc1,c2,c3为颜色。我被困在密谋中。我想要一个c1的颜色在协调x1,y1,z1和类似于其他协调。

我用了以下方法-

代码语言:javascript
复制
import matplotlib.pyplot as plt
import numpy as np

1) for p in range(len(array1)-1):
         x = np.append([array1[p][0]], array1[p+1][0])
         y = np.append([array1[p][1]], array1[p+1][1])
         z = np.append([array1[p][2]], array1[p+1][2])
         c = np.append([array1[p][3]], array1[p+1][3])
   fig = plt.figure()
   ax = fig.gca(projection='3d')
   ax.scatter(x,y,z,c=c,cmap = cmap)
   plt.show()

方法1的问题是,它没有绘制列表中的所有元素。我想执行附件是个错误。我没有收到任何错误,但它只是没有标出每一个数据。

代码语言:javascript
复制
2) fig = plt.figure()
    ax = fig.gca(projection='3d')

    for p in range(len(array1)-1):
        ax.scatter(array1[p][0],array1[p][1],array1[p][2],array1[p][3],cmap = 
         cmap)
    plt.show()

所以在方法2中,我尝试迭代地绘制,但是它给了我‘浮点对象不可订阅’的错误。

有人能告诉我哪里出了问题吗。或者还有其他方法可以做到这一点呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-10-02 10:09:45

这是一种将列表转换为数组的方法,它允许将所有元素直接切片为x、y、z和颜色坐标。

代码语言:javascript
复制
import matplotlib.cm as cm
import matplotlib.pyplot as plt
import numpy as np

fig = plt.figure()
ax = fig.gca(projection='3d')

new_array = = np.array(array1)
ax.scatter(new_array[:,0],new_array[:,1],new_array[:,2], c=new_array[:,3], cmap=cm.RdBu, s=100)

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52603227

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档