小编pom*_*pum的帖子

Python - 在mplot3D中设置zlim

mpl.rcParams['legend.fontsize'] = 10

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

ax.plot(tab_C[0], tab_C[1], zs=0, zdir='z', label = "Projection de la trajectoire de C", color='k')
ax.plot(tab_M[0], tab_M[1], zs=0, zdir='z', label = "Projection de la trajectoire de M", color='r')

for i in range(0,len(tab_t)):
    ax.plot(tab_C[0][i:i+2], tab_C[1][i:i+2], tab_C[2][i:i+2], color=plt.cm.rainbow(255*i/len(tab_t)))
    ax.plot(tab_M[0][i:i+2], tab_M[1][i:i+2], tab_M[2][i:i+2], color=plt.cm.rainbow(255*i/len(tab_t)))

ax.legend()

ax.set_xlabel('I')
ax.set_ylabel('J')
ax.set_zlabel('K')

m = cm.ScalarMappable(cmap=cm.rainbow)
m.set_array(tab_t)

plt.colorbar(m)
Run Code Online (Sandbox Code Playgroud)

我用我的代码得到了这个情节

我的情节

我的问题是 - 我想为颜色条设置标签,但ScalarMappale没有方法set_label() - 我想设置zmin = 0以清楚地看到计划上的投影(0xy)但似乎这里的zmin是0.05当我做ax.set_zlim(bottom = 0)它返回

Traceback (most recent call last):
  File "code.py", line 117, in <module>
    ax.set_zlim(bottom=0) 
  File "/usr/lib/pymodules/python2.7/mpl_toolkits/mplot3d/axes3d.py", …
Run Code Online (Sandbox Code Playgroud)

python matplotlib colorbar

7
推荐指数
1
解决办法
9417
查看次数

Python - matplotlib中的colormap用于3D线图

我正在尝试使用matplotlib的工具包mplot3D绘制3D线图我有4个数组

  • tab_C [0]是x值的数组
  • tab_C [1]是y值的数组
  • tab_C [2]是一个z值数组
  • tab_t是一个时间值数组

我用这个绘制了我的情节:

import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D

fig1 = plt.figure()
ax = fig1.gca(projection='3d')
ax.plot(tab_C[0], tab_C[1], tab_C[2])

plt.show()
Run Code Online (Sandbox Code Playgroud)

它工作但现在我希望这个情节有基于时间值的彩虹色.我搜索了matplotlib的网页,但没有任何内容.有关这个问题的任何建议吗?

python matplotlib colormap

4
推荐指数
2
解决办法
1862
查看次数

Python - 3D参数曲线的线条颜色

我有2个列表tab_x(包含x的值)和tab_z(包含z的值),它们具有相同的长度和值y.

我想绘制一条由z值着色的3D曲线.我知道它可以绘制成2D绘图,但我想用不同的y值绘制这些绘图中的一些以进行比较,所以我需要它是3D.

我的tab_z也包含负数值

我已经在这个问题中找到了按时间(索引)为曲线着色的代码,但是我不知道如何转换这个代码以使其在我的情况下工作.

谢谢您的帮助.

我添加我的代码更具体:

fig8 = plt.figure()
ax8 = fig8.gca(projection = '3d')
tab_y=[]
for i in range (0,len(tab_x)):
  tab_y.append(y)
ax8.plot(tab_x, tab_y, tab_z)
Run Code Online (Sandbox Code Playgroud)

我现在有这个

在此输入图像描述

我试过这段代码

for i in range (0,len(tab_t)):
    ax8.plot(tab_x[i:i+2], tab_y[i:i+2], tab_z[i:i+2],color=plt.cm.rainbow(255*tab_z[i]/max(tab_z)))
Run Code Online (Sandbox Code Playgroud)

完全失败:

在此输入图像描述

python matplotlib mplot3d colormap

1
推荐指数
1
解决办法
1244
查看次数

Python - 将数组转换为列表会导致值发生变化

>>> import numpy as np
>>> a=np.arange(0,2,0.2)
>>> a
array([ 0. ,  0.2,  0.4,  0.6,  0.8,  1. ,  1.2,  1.4,  1.6,  1.8])
>>> a=a.tolist()
>>> a
[0.0, 0.2, 0.4, 0.6000000000000001, 0.8, 1.0, 1.2000000000000002, 1.4000000000000001, 1.6, 1.8]
>>> a.index(0.6)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ValueError: 0.6 is not in list
Run Code Online (Sandbox Code Playgroud)

似乎列表中的某些值已更改,我无法找到它们index().我该如何解决这个问题?

python arrays numpy list

-1
推荐指数
1
解决办法
105
查看次数

标签 统计

python ×4

matplotlib ×3

colormap ×2

arrays ×1

colorbar ×1

list ×1

mplot3d ×1

numpy ×1