Note that there are some explanatory texts on larger screens.

plurals
  1. POPlotting a simple 2D square with matplotlib
    text
    copied!<p><img src="https://i.stack.imgur.com/4pvD4.jpg" alt="enter image description here">I am working n a project where I need to do the top and side views of a cube, but I don't know how to draw the square that represent the view from the top. Here is the code of the cube: </p> <pre><code>from mpl_toolkits.mplot3d import Axes3D import matplotlib.pyplot as plt import numpy as np from itertools import product, combinations, cycle from numpy import sin, cos from matplotlib.patches import Rectangle, Circle, PathPatch import mpl_toolkits.mplot3d.art3d as art3d fig = plt.figure() ax = fig.gca(projection='3d') ax.set_aspect("auto") ax.set_autoscale_on(True) #dibujar cubo r = [-1, 1] for s, e in combinations(np.array(list(product(r,r,r))), 2): if np.sum(np.abs(s-e)) == r[1]-r[0]: ax.plot3D(*zip(s,e), color="b") #dibujar punto ax.scatter([0],[0],[0],color="g",s=100) #dibujar vector from matplotlib.patches import FancyArrowPatch from mpl_toolkits.mplot3d import proj3d class Arrow3D(FancyArrowPatch): def __init__(self, xs, ys, zs, *args, **kwargs): FancyArrowPatch.__init__(self, (0,0), (0,0), *args, **kwargs) self._verts3d = xs, ys, zs def draw(self, renderer): xs3d, ys3d, zs3d = self._verts3d xs, ys, zs = proj3d.proj_transform(xs3d, ys3d, zs3d, renderer.M) self.set_positions((xs[0],ys[0]),(xs[1],ys[1])) FancyArrowPatch.draw(self, renderer) #print "ingrese coordenada inicial: " m=float(input("Ingrese valor de vector: ")) a = Arrow3D([0,0],[0,1],[0,0], mutation_scale=20, lw=1, arrowstyle="-|&gt;", color="k") b = Arrow3D([0,-1],[0,0],[0,0], mutation_scale=20, lw=1, arrowstyle="-|&gt;", color="r") c = Arrow3D([0,0],[0,0],[0,1], mutation_scale=20, lw=1, arrowstyle="-|&gt;", color="b") d = Arrow3D([0,0],[0,0],[0,-1], mutation_scale=20, lw=1, arrowstyle="-|&gt;", color="g") e = Arrow3D([0,m],[0,0],[0,0], mutation_scale=20, lw=1, arrowstyle="-|&gt;", color="c") f = Arrow3D([0,0],[0,-0.5],[0,0], mutation_scale=20, lw=1, arrowstyle="-|&gt;", color="m") ax.add_artist(a) ax.add_artist(b) ax.add_artist(c) ax.add_artist(d) ax.add_artist(e) ax.add_artist(f) a = [0, 0, 0] b = [m, 0, 1] orig = [0, 0, 0] for (_b, _e), _c in zip([[orig, a], [orig, b], [a, b]], cycle(['m', 'r', 'g', 'b'])): xs, ys, zs = zip(_b, _e) res = Arrow3D(xs, ys, zs, mutation_scale=20, lw=1, arrowstyle="simple", color='y') ax.add_artist(res) plt.show() </code></pre> <p>So, How can I do the top view of the cube in a subplot like the example image?</p>
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload