2016-05-19 8 views
11

enter image description hereTweaking अक्ष लेबल और नाम उन्मुखीकरण

मैं matplotlib का उपयोग कर इस 3 डी साजिश कर रही हूँ:

ax.plot_surface(x_surf, y_surf, np.reshape(npp, (max_temp/step, max_temp/step)), linewidth=0.2,cmap=palettable.colorbrewer.sequential.Greens_9.mpl_colormap) 

मैं कैसे अक्ष लेबल और अक्ष के नाम और इस साजिश की तरह लग रहे बना सकते हैं : enter image description here

+2

अब मैं भी मेरी रुचि है, दूसरा कुल्हाड़ियों रास्ता कूलर लग रहा है! – wim

उत्तर

4

जहां तक ​​मुझे समझा गया, आप "अक्ष लेबल" और "अक्ष नाम" को बदलना चाहते हैं।

दुर्भाग्य से मैं केवल इसका हिस्सा कर सकता है (मुझे आशा है कि आप के लिए कुछ नई है और किसी और यह के दूसरे भाग पाता है कि):

enter image description here

enter image description here

मैंने किया आदेश

import matplotlib.pyplot as plt 
from matplotlib.patches import Circle, PathPatch 
# register Axes3D class with matplotlib by importing Axes3D 
from mpl_toolkits.mplot3d import Axes3D 
import mpl_toolkits.mplot3d.art3d as art3d 
from matplotlib.text import TextPath 
from matplotlib.transforms import Affine2D 

def text3d(ax, xyz, s, zdir="z", size=None, angle=0, usetex=False, **kwargs): 

    x, y, z = xyz 
    if zdir == "y": 
     xy1, z1 = (x, z), y 
    elif zdir == "y": 
     xy1, z1 = (y, z), x 
    else: 
     xy1, z1 = (x, y), z 

    text_path = TextPath((0, 0), s, size=size, usetex=usetex) 
    trans = Affine2D().rotate(angle).translate(xy1[0], xy1[1]) 

    p1 = PathPatch(trans.transform_path(text_path), **kwargs) 
    ax.add_patch(p1) 
    art3d.pathpatch_2d_to_3d(p1, z=z1, zdir=zdir) 


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

ax.tick_params(axis='x',direction='out', length=6, width=2, colors='r') 

text3d(ax, (4, -2, 0), "X-axis", zdir="z", size=.5, usetex=False, 
     ec="none", fc="k") 
text3d(ax, (12, 4, 0), "Y-axis", zdir="z", size=.5, usetex=False, 
     angle=.5*3.14159, ec="none", fc="k") 
text3d(ax, (12, 10, 4), "Z-axis", zdir="y", size=.5, usetex=False, 
     angle=.5*3.14159, ec="none", fc="k") 

ax.set_xlim3d(0, 10) 
ax.set_ylim3d(0, 10) 
ax.set_zlim3d(0, 10) 

plt.show() 
ऊपर चित्र प्राप्त करने के में http://matplotlib.org/examples/mplot3d/pathpatch3d_demo.html में कुछ बदलाव

मुझे यह देखने की उम्मीद थी कि इस समस्या के दूसरे भाग को http://matplotlib.org/api/axes_api.html पर कैसे विकसित किया जाए, लेकिन मुझे अभी तक यह नहीं मिला।

आशा इस मदद करता है

+0

धन्यवाद @awdk, यह एक महान शुरुआत है और उम्मीद है कि कोई दूसरा भाग – user308827

+0

पूरा कर सकता है, मैं अजगर के साथ ट्रैकिंग नहीं कर रहा हूं, लेकिन यह अनावश्यक लगता है: 'elif zdir == "y": ' – ib11

संबंधित मुद्दे