簡體   English   中英

Python-3D參數曲線的線顏色

[英]Python - Line colour of 3D parametric curve

我有2所列出tab_x(containe x的值)和tab_z(containe z的值),其具有相同的長度和y的值

我想繪制一個3D曲線,該曲線由z的值着色。 我知道可以將其繪制為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)

我現在有這個

在此處輸入圖片說明

我已經試過這段代碼

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)))

完全失敗:

在此處輸入圖片說明

您的第二次嘗試幾乎成功了。 唯一的變化是,輸入到顏色表 cm.jet()必須在0到1.您可以擴展您的z值,以適應該范圍內的范圍正常化

import numpy as np
from matplotlib import pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
from matplotlib import colors

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

N = 100
y = np.ones((N,1))
x = np.arange(1,N + 1)
z = 5*np.sin(x/5.)

cn = colors.Normalize(min(z), max(z)) # creates a Normalize object for these z values
for i in xrange(N-1):
    ax.plot(x[i:i+2], y[i:i+2], z[i:i+2], color=plt.cm.jet(cn(z[i])))

plt.show()

具有縮放的z值的3d圖

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM