Python - How To Draw A Heart With Pylab - Stack Overflow
Python - How To Draw A Heart With Pylab - Stack Overflow
Asked 13 years, 2 months ago Modified 9 years ago Viewed 22k times
How to draw a heart with pylab? I searched with google for ways to draw the picture but
i want know how to draw it with pylab. Can someone help? The picture should look like
10 this:
Share Improve this question edited Dec 18, 2010 at 16:41 asked Dec 18, 2010 at 12:49
Follow jfs timger
406k 199 1k 1.7k 952 2 13 32
8 import pylab
x = scipy.linspace(-2,2,1000)
y1 = scipy.sqrt(1-(abs(x)-1)**2)
y2 = -3*scipy.sqrt(1-(abs(x)/2)**0.5)
pylab.fill_between(x, y1, color='red')
pylab.fill_between(x, y2, color='red')
pylab.xlim([-2.5, 2.5])
pylab.text(0, -0.4, 'Stack Overflow', fontsize=24, fontweight='bold',
color='white', horizontalalignment='center')
pylab.savefig('heart.png')
Share Improve this answer Follow answered Dec 18, 2010 at 15:21
Steve Tjoa
59.9k 18 91 102
The author of the article have put together the implicit function plotting can be found
8
here and the implicit function of the hearth, and got the code below:
#!/usr/bin/env python3
from mpl_toolkits.mplot3d import Axes3D
from matplotlib import cm
from matplotlib.ticker import LinearLocator, FormatStrFormatter
import matplotlib.pyplot as plt
import numpy as np
def heart_3d(x,y,z):
return (x**2+(9/4)*y**2+z**2-1)**3-x**2*z**3-(9/80)*y**2*z**3
# must set plot limits because the contour will likely extend
# way beyond the displayed level. Otherwise matplotlib extends the plot
limits
# to encompass all values in the contour.
ax.set_zlim3d(zmin, zmax)
ax.set_xlim3d(xmin, xmax)
ax.set_ylim3d(ymin, ymax)
plt.show()
if __name__ == '__main__':
plot_implicit(heart_3d)
I have changed the python to python3 in the first row. If you use Python 2 you need to
set it back.
Share Improve this answer edited May 23, 2017 at 12:25 answered Feb 23, 2015 at 14:15
Follow Community Bot Arpad Horvath --
1 1 Слава Уĸраїні
1,824 1 18 41
5 x, y, z = var('x, y, z')
f(x, y, z) = (x^2+(9/4)*y^2+z^2-1)^3-x^2*z^3-(9/80)*y^2*z^3
P = implicit_plot3d(f, (x, -3, 3), (y, -3, 3), (z, -3, 3),
frame=False, axes=True, figsize=6,color="red")
P.show(viewer='tachyon')
Share Improve this answer edited Dec 19, 2010 at 22:34 answered Dec 18, 2010 at 15:27
Follow jfs kros
406k 199 1k 1.7k 1,267 12 19