第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

matplotlibplot_surface顏色圖不隨z軸縮放

matplotlibplot_surface顏色圖不隨z軸縮放

叮當(dāng)貓咪 2023-09-19 14:08:58
我嘗試使用 matplotlib 的plot_surface 制作簡單的 3D 繪圖,下面是最小的示例:import numpy as npimport matplotlib.pyplot as pltfrom matplotlib import cmx_test = np.arange(0.001, 0.01, 0.0005)y_test = np.arange(0.1, 100, 0.05)fig = plt.figure()ax = fig.add_subplot(111, projection='3d')Xtest, Ytest = np.meshgrid(x_test, y_test)Ztest = Xtest**-1 + Ytestsurf = ax.plot_surface(Xtest, Ytest, Ztest,                       cmap=cm.plasma, alpha=1,                       antialiased=False)fig.colorbar(surf, shrink=0.5, aspect=5)ax.set_ylabel(r'$ Y $', fontsize=16)ax.set_xlabel(r'$ X $', fontsize=16)ax.set_zlabel(r'$ Z $', fontsize=16)結(jié)果給出了奇怪的顏色圖,它并不代表 z 尺度的大小,正如您可以從這里看到的3D 繪圖結(jié)果。我的意思是,如果你沿著 Z 軸不變的直線,你不會(huì)看到相同的顏色。我嘗試更改ccountandrcount內(nèi)部plot_surface函數(shù)或更改 Xtest 或 Ytest 數(shù)據(jù)的間隔,但沒有任何幫助。我嘗試了這里和這里的一些建議。但似乎沒有關(guān)聯(lián)。你能幫我解決這個(gè)問題嗎?這似乎是一個(gè)簡單的問題,但我無法解決。謝謝!編輯我添加了示例,但使用了我沒有在這里寫的原始方程(它很復(fù)雜),請(qǐng)看一下:Comparison。左圖是在 Matlab 中完成的(由我的顧問完成),右圖是使用 matplotlib 完成的。您可以清楚地看到左側(cè)的圖確實(shí)很有意義,最亮的顏色始終位于最大 z 軸上。不幸的是,我不懂matlab。我希望我可以使用 python 來做到這一點(diǎn),希望這次編輯能讓問題更清楚。編輯2 我確信這不是最好的解決方案。這就是為什么我把它放在這里,而不是作為答案。正如 @swatchai 建議使用contour3D. 由于曲面是一組線,因此我可以通過繪制大量輪廓線來生成正確的結(jié)果,方法是:surf = ax.contour3D(Xtest, Ytest, Ztest, 500, cmap=cm.plasma,                  alpha=0.5, antialiased=False)正如您可以從這里看到的那樣,顏色圖是正確的alternative1 但情節(jié)非常沉重。當(dāng)你放大時(shí),它看起來不太好,除非你再次增加輪廓的數(shù)量。歡迎任何建議:)。
查看完整描述

3 回答

?
收到一只叮咚

TA貢獻(xiàn)1821條經(jīng)驗(yàn) 獲得超5個(gè)贊

我不知道如何實(shí)現(xiàn)這一點(diǎn),但也許可以解釋一下為什么會(huì)發(fā)生這種情況。 plot_surface生成一個(gè)網(wǎng)格,其中頂點(diǎn)由xy和定義z。每個(gè)面片都有 4 個(gè)角,并獲得與其 z 值相對(duì)應(yīng)的顏色。查看該圖,它可能是 4 個(gè)角的最大 z 值(只是猜測(cè))。如果您仔細(xì)觀察,當(dāng)您向 +y 方向移動(dòng)時(shí),色塊的顏色實(shí)際上會(huì)變淺。但更明顯的是x方向上的顏色變化,產(chǎn)生了你提到的斜坡。

但如果每個(gè)補(bǔ)丁只有單一顏色,這就無法避免。

如果將公式更改為,您可能會(huì)更清楚地看到這一點(diǎn)Z = (X**-1 + 10 * Y)

https://img1.sycdn.imooc.com//65093b3000011e8206510542.jpg

查看完整回答
反對(duì) 回復(fù) 2023-09-19
?
慕絲7291255

TA貢獻(xiàn)1859條經(jīng)驗(yàn) 獲得超6個(gè)贊

曲面圖的行為不是您所期望的。只有contour3D 或contourf3D 可以顯示此類行為。這是相關(guān)代碼,您可以嘗試獲取以下情節(jié):

surf = ax.plot_surface(Xtest, Ytest, Ztest, cmap=cm.plasma, alpha=0.55)
ax.contourf3D(Xtest, Ytest, Ztest, cmap=cm.plasma)

顯示曲面和輪廓的圖:

https://img1.sycdn.imooc.com//65093b3e00017d5705190353.jpg

查看完整回答
反對(duì) 回復(fù) 2023-09-19
?
弒天下

TA貢獻(xiàn)1818條經(jīng)驗(yàn) 獲得超8個(gè)贊

我想,繪制這種曲面的正式答案是使用Axes3D.contourAxes3D.contourf。例如:

surf2?=?ax.contourf(Xtest,?Ytest,?Ztest,?250,?cmap=cm.plasma,
????????????????????alpha=0.6,?antialiased=False)
surf?=?ax.contour(Xtest,?Ytest,?Ztest,?250,?cmap=cm.plasma,
??????????????????alpha=0.6,?antialiased=False)

顏色圖顯示正確的 z 比例。它不像光滑表面那么完美,因?yàn)檫@取決于我們縮放多少或放置輪廓多少。我不知道是否有辦法通過plot_surface創(chuàng)建它。


查看完整回答
反對(duì) 回復(fù) 2023-09-19
  • 3 回答
  • 0 關(guān)注
  • 223 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)