Python心形代码,python编程爱心形状

  Python心形代码,python编程爱心形状

  polar-heart.png

  前几天在做绩效系统的时候遇到了一件尴尬的事情,忘记了如何在Excel中拟合正态分布。虽然第二天拿起Excel里的一些常用函数和图片,但还是很惭愧。其实当时是有效的,也是有偏差的,忽略了问题的本质,解决数据分析和可视化问题,其实是Python的特长。

  例如,画一个指定区间的多项式函数:

  Python代码如下:import numpy as NP import matplotlib . py plot as PLT

  X=np.linspace(-4,4,1024)

  Y=.25 * (X 4。)* (X 1。)* (X - 2。)

  PLT . title( $ f(x)=\ \ frac { 1 } { 4 }(x ^ 4)(x ^ 1)(x-2)$ )

  plt.plot(X,Y,c=g )

  plt.show()

  通过numpy的linspace方法,确定横坐标x的取值范围,列出方程,然后调用matplotlib的pyplot绘制函数曲线。Numpy是用python实现的科学计算包,包括强大的N维数组对象数组和成熟的函数库。有一个集成C/C和Fortran代码的工具包,提供了线性代数、傅立叶变换、随机数生成函数等实用工具,可以理解为Matlab。

  记得中学的时候,我问老师三角函数有什么用。老师问我:“如果我给你一块铁,我怎么把煤炉的烟囱角切掉?”现在,我还记得老师的这个例子,看似抽象的数学公式,其实我并不知道它们的应用场景。

  sin_cos.png

  Python代码如下:import numpy as NP import matplotlib . py plot as PLT

  X=np.linspace(0,2 * np.pi,100)

  YSinValues=np.sin(X)

  YCosValues=np.cos(X)

  plt.plot(X,y值)

  plt.plot(X,YCosValues)

  plt.show()

  Matplotlib是一个Python 2D图形库,它甚至可以生成出版质量的图形。

  对于那些正态分布,Python的绘制相当简单:import numpy as NP import matplotlib . py plot as PLT def PDF(x,mu,sigma):

  a=1。/(sigma * np.sqrt(2。* np.pi))

  b=-1。/(2.*西格玛** 2)

  返回a * np.exp(b * (X - mu) ** 2)

  对于范围(3)中的I,X=np.linspace(-6,6,1000):

  samples=NP . random . standard _ normal(10)

  mu,sigma=np.mean(样本),np.std(样本)

  plt.plot(X,pdf(X,mu,sigma),color=.66 )

  plt.plot(X,pdf(X,0。 1.),color=b )

  plt.show()

  为了不显得单调,这里再多画几条曲线。只要计算出方差和均值,就可以从excel中读取哪些值来拟合正态分布。

  normal.png

  回归主题,有这么一个关于爱情线的美丽爱情故事。最近在五岳游荡,好清晰。

  300多年前,在斯德哥尔摩的街头,穷困潦倒的笛卡尔过着乞讨的生活,身上带着他所有的财产,破烂的衣服和几本数学书。崇高的笛卡尔没有向路人乞求施舍,而是默默低头,在纸上写写画画,全身心地投入到自己的数学世界中。在一个安静的下午,笛卡尔像往常一样坐在街上的阳光下研究数学问题。过往的人群和嘈杂的车马队伍都不能打扰他。一个美丽的女人走在路上,五官清晰,美丽动人。没想到遇上了真正的乔,她两个心里都高兴。

  “你在干什么?”转过头,笛卡尔看到了一个年轻漂亮的眼睑,一双清澈如碧蓝湖水的眼睛,可爱极了。她是瑞典lldsc,国王最宠爱的女儿光明航空。她蹲下身子,拿着笛卡尔的数学书和草稿纸,和他说话。交谈中,他发现这只搞笑的小懒猪思维敏捷,对数学有着浓厚的兴趣。

  几天后,笛卡尔意外得到通知,国王聘请他做lldsc的xfdej。满腹疑惑的笛卡尔跟着hldfk来到了宫殿。他听到远处传来银铃般的笑声。他看到了那天在街上遇到的勇敢的豆芽,从此成为了公主的xfdej。爱情一旦开始就不会结束。

  公主的数学在笛卡尔的悉心指导下突飞猛进,他们开始变得亲密无间。笛卡尔向她介绍了直角坐标系。代数和几何是可以结合的,这是笛卡尔日后创立的解析几何的雏形。在笛卡尔的指引下,明亮的航空进入了奇妙的坐标世界,她对曲线着迷。天天形影不离也让他们相爱。

  在瑞典这个浪漫的国度,一段纯洁美好的爱情悄然萌芽。想到这一次回到南方,这旅程是另一条路,千里之外,一片迷蒙,夜空是一片茫茫的夜雾。

  他们的风流韵事传到了国王的耳朵里,国王大怒,下令处死笛卡尔。在亮空的恳求下,国王把他放逐到中国,公主被软禁在一只强壮的老鼠里。

  当时,黑死病在欧洲大陆流行。笛卡尔回到法国后不久,就生了重病。在生命进入倒计时的日子里,他日夜思念着在街上遇见的那张温暖的笑脸。他每天都给她写信,期待她的回复。然而这些信件都被国王截获了,公主再也没有收到他的任何消息。如果你想知道你在想什么,读一读你肚子里的书。

  笛卡尔把第十三封信送到亮空之后,就永远离开了这个世界。此时,被强鼠软禁的lldsc还在皇宫的走廊里徘徊,思念着远方的恋人。

  这最后一个字母里没有写一个字,只有一个等式:r=a(1-sin)。

  想到这个方程里藏着两个人的秘密,国王把全城的数学家都召集到宫里,但是没有人能解出这个方程。他不忍心看着心爱的女儿天天闷闷不乐,就给了她这封信。得到信的光明航空欣喜若狂。她立刻明白了爱人的意图,找来纸和笔,把图画了下来。一个心形图案出现在她的眼前,明亮的航空泪流满面。这条曲线就是著名的“心形线”。

  国王死后,亮空继承王位,立即派人到法国寻找心上人的下落。他收到的是笛卡尔去世的消息,留下了永恒的遗憾.这封举世闻名的另类情书,据说至今仍保存在欧洲的笛卡尔纪念馆。

  这个故事的来历无从得知。网上流传着各种版本,甚至百度百科里都有。后来有人验证了真实性,认为这是一个美丽的谎言,但并不妨碍人们对爱情这条线的热爱。

  在直角坐标系中,爱情线方程的python表达式为:x** 2 y** 2 a * x=a * sqrt(x** 2 y** 2)和x** 2 y** 2-a * x=a * sqrt(x** 2 y** 2)

  通过X找到对应的Y值是很麻烦的,就像软件设计中的“万能层”,可以用参数方程表示:x=a*(2*cos(t)-cos(2*t))

  y=a*(2*sin(t)-sin(2*t))

  的python代码如下:import numpy as NP import matplotlib . py plot as PLT。

  a=1t=np.linspace(0,2 * np.pi,1024)

  X=a*(2*np.cos(t)-np.cos(2*t))

  Y=a*(2*np.sin(t)-np.sin(2*t))

  plt.plot(Y,X,color=r )

  plt.show()

  代表爱情的心形线来了:

  xy-heart.png

  但它不是六行代码。不是r=a(1-sin)吗?的确,是极坐标系统。python的matplotlib也支持极坐标系统。爱情线pyton代码六行如下:import numpy as NP import matplotlib . py plot as PLT。

  T=np.linspace(0,2 * np.pi,1024)

  plt.axes(极坐标=真)

  plt.plot(T,1。- np.sin(T),color=r )

  plt.show()

  这样,你就得到了封面上的图像:

  polar-heart.png

  心形线真的是满满的爱。如果融入悲伤会是什么样子?将numpy作为npimport matplotlib.pyplot作为plt导入

  x=np.linspace(-8,8,1024)

  y1=0.618 * NP . ABS(x)-0.8 * NP . sqrt(64-x * * 2)

  y2=0.618 * NP . ABS(x)0.8 * NP . sqrt(64-x * * 2)

  plt.plot(x,y1,color=r )

  plt.plot(x,y2,color=r )

  plt.show()

  所以你得到了另一种爱:

  窄_心. png

  网上也有各种漂亮的爱情线实现,也充满了各种情绪,但对于每一条,基本上都能相对简洁地用python实现。

  其实画图很简单,难的是那些曲线方程的表达和实际应用场景的要求,比如螺旋线。

  rope.png

  此外,您还可以绘制各种3D视图,例如:

  3d.png

  作为数据分析乃至大数据处理的最后一个环节,就是洞察的可视化。python可以说是一个简单实用的工具。

  参考读物

  http://matplotlib.org/

  《Python 数据可视化编程实战》

  《Python 数据分析实战》

  作者:阿贝尔_曹

  链接:https://www.jianshu.com/p/c8676fc78316

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: