簡體   English   中英

在Matplotlib中的3d表面圖上創建自定義軸值

[英]Make a custom axes values on 3d surface plot in Matplotlib

如何更改Matplotlib中3D曲面圖中的圖表上顯示的軸值?

我在X軸上有16、32、64和128個值,但是matplotlib顯示10、20、30、40等。我該怎么做才能正確顯示它(我的意思是准確地是16、32、64和128個值)?

在此處輸入圖片說明

下面是代碼:

from mpl_toolkits.mplot3d import axes3d
import matplotlib.pyplot as plt
from matplotlib import cm
import numpy as np

fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')

plt.title("Just simple text of 3D plot")

X = [   
            [16, 16, 16, 16, 16, 16, 16],
            [32, 32, 32, 32, 32, 32, 32],
            [64, 64, 64, 64, 64, 64, 64],
            [128, 128, 128, 128, 128, 128, 128]
        ]
Y = [   
            [1, 2, 3, 4, 5, 6, 7],
            [1, 2, 3, 4, 5, 6, 7],
            [1, 2, 3, 4, 5, 6, 7],
            [1, 2, 3, 4, 5, 6, 7]
        ]

Z = [
    [550    ,700    ,650    ,550    ,300    ,100    ,5],
    [650    ,760    ,720    ,620    ,350    ,150    ,15],
    [720    ,800    ,780    ,700    ,500    ,250    ,50 ],
    [580    ,690    ,600    ,550    ,250    ,50     ,5  ]
]


ax.plot_surface(X, Y, Z, rstride=1, cstride=1, cmap=cm.coolwarm, linewidth=0, antialiased=False)

ax.set_xlabel('X')
ax.set_ylabel('Y')
ax.set_zlabel('Z')

ax.view_init(elev=33, azim=155)
plt.savefig("3d_test.png")

我認為以下將做:

ax.set_xticks([16,32,64,128])

暫無
暫無

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

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