Rất tiếc, điều này dường như không bị lộ. Nhìn qua nguồn, biến nội bộ chính là gọi _AXINFO
mà chúng ta có thể ghi đè bằng cách phân lớp cẩn thận.
Thêm mã này sau khi con số của bạn được tạo ra, và phong cách nó với dict custom_AXINFO
:
from mpl_toolkits.mplot3d import Axes3D
import mpl_toolkits.mplot3d.axis3d as axis3d
# New axis settings
custom_AXINFO = {
'x': {'i': 0, 'tickdir': 1, 'juggled': (1, 0, 2),
'color': (0.00, 0.00, 0.25, .75)},
'y': {'i': 1, 'tickdir': 0, 'juggled': (0, 1, 2),
'color': (0.20, 0.90, 0.90, 0.25)},
'z': {'i': 2, 'tickdir': 0, 'juggled': (0, 2, 1),
'color': (0.925, 0.125, 0.90, 0.25)},}
class custom_XAxis(axis3d.Axis):
_AXINFO = custom_AXINFO
class custom_YAxis(axis3d.Axis):
_AXINFO = custom_AXINFO
class custom_ZAxis(axis3d.Axis):
_AXINFO = custom_AXINFO
class custom_Axes3D(Axes3D):
def _init_axis(self):
'''Init 3D axes; overrides creation of regular X/Y axes'''
self.w_xaxis = custom_XAxis('x', self.xy_viewLim.intervalx,
self.xy_dataLim.intervalx, self)
self.xaxis = self.w_xaxis
self.w_yaxis = custom_YAxis('y', self.xy_viewLim.intervaly,
self.xy_dataLim.intervaly, self)
self.yaxis = self.w_yaxis
self.w_zaxis = custom_ZAxis('z', self.zz_viewLim.intervalx,
self.zz_dataLim.intervalx, self)
self.zaxis = self.w_zaxis
for ax in self.xaxis, self.yaxis, self.zaxis:
ax.init3d()
# The rest of your code below, note the call to our new custom_Axes3D
points = (5*np.random.randn(3, 50)+np.tile(np.arange(1,51), (3, 1))).transpose()
fig = plt.figure(figsize = (10,10))
ax = custom_Axes3D(fig)
này được khỉ vá lúc đó là tồi tệ nhất, và không nên được dựa vào để làm việc cho các phiên bản sau.
Sửa các facecolors dễ dàng hơn các đường lưới, vì điều này đòi hỏi phải ghi đè lên một trong các phương pháp __init__
, mặc dù nó có thể được thực hiện với nhiều công việc hơn.
Dường như không khó để hiển thị điều này cho người dùng cuối và vì vậy tôi có thể hình dung rằng điều này có thể được khắc phục trong các phiên bản sau.
Có vẻ như bây giờ bạn có thể làm ax.w_xaxis.plane.set_color ((1,0,0)); ax.w_xaxis.plane.set_alpha (0.5). Có vẻ như nó bỏ qua kênh alpha trong set_color nhưng sử dụng kênh alpha trong set_alpha. – Ben