|
From: jules h. <hu...@ha...> - 2011-02-14 12:24:11
|
Feel free to 'save and run', pass along, or ignore.
This was my valentine's day present today.
I hope the bandwidth amuses more than it annoys...
Jules
#----------------------------------
# hohumheart.py
import numpy as np
import matplotlib as mpl
import matplotlib.pyplot as plt
from matplotlib.patches import Polygon
# force square figure and square axes looks better for polar, IMO
width, height = mpl.rcParams['figure.figsize']
size = min(width, height)
# make a square figure
fig = plt.figure(figsize=(size, size))
ax = fig.add_axes([0.1, 0.1, 0.8, 0.8], polar=True, axisbg='#ffffff')
ax.set_rmax(2.0)
ax.set_xticks([])
ax.set_yticks([])
plt.grid(False)
theta = np.linspace(0,1,100)*np.pi*2
r = 1*(1-np.cos(theta))
ncards = 5
step = 2*np.pi/ncards
for ii in range(ncards):
tr = np.column_stack((theta+ii*step, r))
cpatch = Polygon(tr)
cpatch.set_facecolor('r')
cpatch.set_edgecolor('k')
cpatch.set_alpha(0.5)
ax.add_patch(cpatch)
ax.set_title("I $\heartsuit$ you", fontsize=20)
plt.show()
#-----------------------
|
|
From: Paul I. <piv...@gm...> - 2011-02-15 01:25:38
|
jules hummon, on 2011-02-14 07:23, wrote:
> Feel free to 'save and run', pass along, or ignore.
> This was my valentine's day present today.
Thank you for sharing! I took the liberty of livening it up for
my sweetheart.
#---------------------------------------------------
# hohumheartbeat.py - a more lively hohumheart.py ;)
import numpy as np
import matplotlib as mpl
import matplotlib.pyplot as plt
from matplotlib.patches import Polygon
# force square figure and square axes looks better for polar, IMO
width, height = mpl.rcParams['figure.figsize']
size = min(width, height)
# make a square figure
fig = plt.figure(figsize=(size, size))
ax = fig.add_axes([0.1, 0.1, 0.8, 0.8], polar=True, axisbg='#ffffff')
ax2 = fig.add_axes([0.45, .9, 0.1, 0.1], polar=True, axisbg='#ffffff')
ax.set_rmax(2.0)
ax2.set_rmax(4.0)
ax2.spines['polar'].set_visible(False)
ax2.patch.set_alpha(.3)
for a in ax,ax2:
a.set_xticks([])
a.set_yticks([])
ax.grid(False)
theta = np.linspace(0,1,100)*np.pi*2
r = 1*(1-np.cos(theta))
ncards = 5
step = 2*np.pi/ncards
pdict = dict(fc='r',ec='k', alpha=.5)
for ii in range(ncards):
tr = np.column_stack((theta+ii*step, r))
ax.add_patch(Polygon(tr, **pdict))
# from WolframMath "Heart Curve"
r2 = 2 - 2*np.sin(theta)
r2 += np.sin(theta) * np.sqrt(np.abs(np.cos(theta))) / (np.sin(theta)+1.4)
tr2 = np.column_stack((theta, r2))
ax2.add_patch(Polygon(tr2,**pdict)) # heart
kwargs = dict(transform=ax2.transAxes, va='center', fontsize=20)
ax2.text(0,.45,"I",ha='right',**kwargs)
ax2.text(1,.4,"you",ha='left',**kwargs)
beat = np.tan(np.linspace(0, np.pi*2, 100))
beat[0:20] = beat[60:80]
beat[-20:] = beat[20:40]
beat -= beat.min()
beat /= beat.max()
i=0; beatlen = len(beat)-1;
def heartbeat(e):
global i;
i = (i+1) % (beatlen)
y = beat[i]
ax2.set_rmax(y*4. + 4.)
ax2.draw(ax.figure.canvas.get_renderer())
ax2.figure.canvas.blit(ax2.bbox)
#plt.draw() #use if the last two lines cause trouble
# even your mouse movements make my heart skip a bit!
cid = ax.figure.canvas.mpl_connect('idle_event', heartbeat)
print "ax.figure.canvas.mpl_disconnect(%d)" %cid
print "#run the line above to 'flatline' (stop heartbeat)"
plt.show()
best,
--
Paul Ivanov
314 address only used for lists, off-list direct email at:
http://pirsquared.org | GPG/PGP key id: 0x0F3E28F7
|
|
From: Benjamin R. <ben...@ou...> - 2014-02-14 22:13:40
|
I rolled a 20 today for necromancer, so I am going to do a thread
resurrection. Given recent improvements in matplotlib, we should
definitely make this web-enabled. That way, we can share our nerdiness with
our non-nerdy significant others.
Happy Valentine's day!
Ben
On Mon, Feb 14, 2011 at 8:25 PM, Paul Ivanov <piv...@gm...> wrote:
> jules hummon, on 2011-02-14 07:23, wrote:
> > Feel free to 'save and run', pass along, or ignore.
> > This was my valentine's day present today.
>
> Thank you for sharing! I took the liberty of livening it up for
> my sweetheart.
>
> #---------------------------------------------------
> # hohumheartbeat.py - a more lively hohumheart.py ;)
>
> import numpy as np
> import matplotlib as mpl
> import matplotlib.pyplot as plt
> from matplotlib.patches import Polygon
>
> # force square figure and square axes looks better for polar, IMO
> width, height = mpl.rcParams['figure.figsize']
> size = min(width, height)
> # make a square figure
> fig = plt.figure(figsize=(size, size))
> ax = fig.add_axes([0.1, 0.1, 0.8, 0.8], polar=True, axisbg='#ffffff')
> ax2 = fig.add_axes([0.45, .9, 0.1, 0.1], polar=True, axisbg='#ffffff')
>
> ax.set_rmax(2.0)
> ax2.set_rmax(4.0)
> ax2.spines['polar'].set_visible(False)
> ax2.patch.set_alpha(.3)
> for a in ax,ax2:
> a.set_xticks([])
> a.set_yticks([])
> ax.grid(False)
>
> theta = np.linspace(0,1,100)*np.pi*2
> r = 1*(1-np.cos(theta))
>
> ncards = 5
> step = 2*np.pi/ncards
> pdict = dict(fc='r',ec='k', alpha=.5)
> for ii in range(ncards):
> tr = np.column_stack((theta+ii*step, r))
> ax.add_patch(Polygon(tr, **pdict))
>
> # from WolframMath "Heart Curve"
> r2 = 2 - 2*np.sin(theta)
> r2 += np.sin(theta) * np.sqrt(np.abs(np.cos(theta))) / (np.sin(theta)+1.4)
>
> tr2 = np.column_stack((theta, r2))
> ax2.add_patch(Polygon(tr2,**pdict)) # heart
>
> kwargs = dict(transform=ax2.transAxes, va='center', fontsize=20)
> ax2.text(0,.45,"I",ha='right',**kwargs)
> ax2.text(1,.4,"you",ha='left',**kwargs)
>
> beat = np.tan(np.linspace(0, np.pi*2, 100))
> beat[0:20] = beat[60:80]
> beat[-20:] = beat[20:40]
> beat -= beat.min()
> beat /= beat.max()
>
> i=0; beatlen = len(beat)-1;
> def heartbeat(e):
> global i;
> i = (i+1) % (beatlen)
> y = beat[i]
> ax2.set_rmax(y*4. + 4.)
> ax2.draw(ax.figure.canvas.get_renderer())
> ax2.figure.canvas.blit(ax2.bbox)
> #plt.draw() #use if the last two lines cause trouble
>
> # even your mouse movements make my heart skip a bit!
> cid = ax.figure.canvas.mpl_connect('idle_event', heartbeat)
>
> print "ax.figure.canvas.mpl_disconnect(%d)" %cid
> print "#run the line above to 'flatline' (stop heartbeat)"
> plt.show()
>
> best,
> --
> Paul Ivanov
> 314 address only used for lists, off-list direct email at:
> http://pirsquared.org | GPG/PGP key id: 0x0F3E28F7
>
> -----BEGIN PGP SIGNATURE-----
> Version: GnuPG v1.4.10 (GNU/Linux)
>
> iEYEARECAAYFAk1Z1gcACgkQe+cmRQ8+KPccQACgiCFswsMAqJObseb8yn2dHLR3
> UuwAn0xb2MeaQJffHt70/u8T1j6lmuCJ
> =0hq/
> -----END PGP SIGNATURE-----
>
>
> ------------------------------------------------------------------------------
> The ultimate all-in-one performance toolkit: Intel(R) Parallel Studio XE:
> Pinpoint memory and threading errors before they happen.
> Find and fix more than 250 security defects in the development cycle.
> Locate bottlenecks in serial and parallel code that limit performance.
> http://p.sf.net/sfu/intel-dev2devfeb
> _______________________________________________
> Matplotlib-users mailing list
> Mat...@li...
> https://lists.sourceforge.net/lists/listinfo/matplotlib-users
>
>
|
|
From: Apostolis G. <apo...@gm...> - 2014-02-15 12:53:38
|
Amazing...
Great work!
2014-02-15 0:13 GMT+02:00 Benjamin Root <ben...@ou...>:
> I rolled a 20 today for necromancer, so I am going to do a thread
> resurrection. Given recent improvements in matplotlib, we should
> definitely make this web-enabled. That way, we can share our nerdiness with
> our non-nerdy significant others.
>
> Happy Valentine's day!
> Ben
>
> On Mon, Feb 14, 2011 at 8:25 PM, Paul Ivanov <piv...@gm...> wrote:
>
>> jules hummon, on 2011-02-14 07:23, wrote:
>> > Feel free to 'save and run', pass along, or ignore.
>> > This was my valentine's day present today.
>>
>> Thank you for sharing! I took the liberty of livening it up for
>> my sweetheart.
>>
>> #---------------------------------------------------
>> # hohumheartbeat.py - a more lively hohumheart.py ;)
>>
>> import numpy as np
>> import matplotlib as mpl
>> import matplotlib.pyplot as plt
>> from matplotlib.patches import Polygon
>>
>> # force square figure and square axes looks better for polar, IMO
>> width, height = mpl.rcParams['figure.figsize']
>> size = min(width, height)
>> # make a square figure
>> fig = plt.figure(figsize=(size, size))
>> ax = fig.add_axes([0.1, 0.1, 0.8, 0.8], polar=True, axisbg='#ffffff')
>> ax2 = fig.add_axes([0.45, .9, 0.1, 0.1], polar=True, axisbg='#ffffff')
>>
>> ax.set_rmax(2.0)
>> ax2.set_rmax(4.0)
>> ax2.spines['polar'].set_visible(False)
>> ax2.patch.set_alpha(.3)
>> for a in ax,ax2:
>> a.set_xticks([])
>> a.set_yticks([])
>> ax.grid(False)
>>
>> theta = np.linspace(0,1,100)*np.pi*2
>> r = 1*(1-np.cos(theta))
>>
>> ncards = 5
>> step = 2*np.pi/ncards
>> pdict = dict(fc='r',ec='k', alpha=.5)
>> for ii in range(ncards):
>> tr = np.column_stack((theta+ii*step, r))
>> ax.add_patch(Polygon(tr, **pdict))
>>
>> # from WolframMath "Heart Curve"
>> r2 = 2 - 2*np.sin(theta)
>> r2 += np.sin(theta) * np.sqrt(np.abs(np.cos(theta))) / (np.sin(theta)+1.4)
>>
>> tr2 = np.column_stack((theta, r2))
>> ax2.add_patch(Polygon(tr2,**pdict)) # heart
>>
>> kwargs = dict(transform=ax2.transAxes, va='center', fontsize=20)
>> ax2.text(0,.45,"I",ha='right',**kwargs)
>> ax2.text(1,.4,"you",ha='left',**kwargs)
>>
>> beat = np.tan(np.linspace(0, np.pi*2, 100))
>> beat[0:20] = beat[60:80]
>> beat[-20:] = beat[20:40]
>> beat -= beat.min()
>> beat /= beat.max()
>>
>> i=0; beatlen = len(beat)-1;
>> def heartbeat(e):
>> global i;
>> i = (i+1) % (beatlen)
>> y = beat[i]
>> ax2.set_rmax(y*4. + 4.)
>> ax2.draw(ax.figure.canvas.get_renderer())
>> ax2.figure.canvas.blit(ax2.bbox)
>> #plt.draw() #use if the last two lines cause trouble
>>
>> # even your mouse movements make my heart skip a bit!
>> cid = ax.figure.canvas.mpl_connect('idle_event', heartbeat)
>>
>> print "ax.figure.canvas.mpl_disconnect(%d)" %cid
>> print "#run the line above to 'flatline' (stop heartbeat)"
>> plt.show()
>>
>> best,
>> --
>> Paul Ivanov
>> 314 address only used for lists, off-list direct email at:
>> http://pirsquared.org | GPG/PGP key id: 0x0F3E28F7
>>
>> -----BEGIN PGP SIGNATURE-----
>> Version: GnuPG v1.4.10 (GNU/Linux)
>>
>> iEYEARECAAYFAk1Z1gcACgkQe+cmRQ8+KPccQACgiCFswsMAqJObseb8yn2dHLR3
>> UuwAn0xb2MeaQJffHt70/u8T1j6lmuCJ
>> =0hq/
>> -----END PGP SIGNATURE-----
>>
>>
>> ------------------------------------------------------------------------------
>> The ultimate all-in-one performance toolkit: Intel(R) Parallel Studio XE:
>> Pinpoint memory and threading errors before they happen.
>> Find and fix more than 250 security defects in the development cycle.
>> Locate bottlenecks in serial and parallel code that limit performance.
>> http://p.sf.net/sfu/intel-dev2devfeb
>> _______________________________________________
>> Matplotlib-users mailing list
>> Mat...@li...
>> https://lists.sourceforge.net/lists/listinfo/matplotlib-users
>>
>>
>
>
> ------------------------------------------------------------------------------
> Android apps run on BlackBerry 10
> Introducing the new BlackBerry 10.2.1 Runtime for Android apps.
> Now with support for Jelly Bean, Bluetooth, Mapview and more.
> Get your Android app in front of a whole new audience. Start now.
>
> http://pubads.g.doubleclick.net/gampad/clk?id=124407151&iu=/4140/ostg.clktrk
> _______________________________________________
> Matplotlib-users mailing list
> Mat...@li...
> https://lists.sourceforge.net/lists/listinfo/matplotlib-users
>
>
|
|
From: Jason G. <jas...@cr...> - 2014-02-15 13:55:45
|
On 2/14/14 4:13 PM, Benjamin Root wrote: > I rolled a 20 today for necromancer, so I am going to do a thread > resurrection. Given recent improvements in matplotlib, we should > definitely make this web-enabled. That way, we can share our nerdiness > with our non-nerdy significant others. Here's one try, with the experimental CommFigure IPython comm-based matplotlib backend I tweaked a few months ago: http://sagecell.sagemath.org/?q=vcycko (it responds to mouse motion, so move your mouse around. Change the duration line at the top to change how fast the heart beats.) Thanks, Jason |