Python|用matplotlib画太极图

Python画太极

       从古代的“三百六十行,行行出状元”到现如今的三万六千行,各行各业都有自己供奉的祖师爷, “天下百工圣人作”说的就是如此。比如,卖鞋的拜刘备,搞木工的拜鲁班,当老师的拜孔子,跑江湖的拜关二爷。那数据分析师拜谁呀?

       龟叔?

       贝叶斯?

        ……..       

       哪能啊。数据分析师的拜的是周易。

       谁?周易。怎么能是他呢?                                     

       你想啊,古人都会求不同的卦,比如学业卦,事业卦,解梦卦,婚姻卦,风水卦;如今呢,数据分析师分析销售情况、运营情况、评估决策、预测趋势,两者都是一个道理。

       既然数据分析师的祖师爷是周易,那我们今天来用数据分析师常用的 matplotlib 来画一副太极图。(各位小伙伴儿,这可是全网首发哦)

第一步,导入所需工具库

import matplotlib.pyplot as plt
​import numpy as np
%matplotlib inline

第二步,设置整张画布的大小与颜色

plt.figure(figsize=(8,8),dpi=80)
ax = plt.gca()
ax.patch.set_facecolor("gray")

第三步,设置太极图最外层大圆的参数并绘画

r = 4.0
a, b = (0., 0.)
theta = np.arange(0, 2*np.pi, 0.001)
x = a + r * np.cos(theta)
y = b + r * np.sin(theta)
plt.fill_between(x,y,where=y>=0,facecolor='white',interpolate=True)
plt.fill_between(x,y,where=y<=0,facecolor='black',interpolate=True)

第四步,设置太极图中间半圆的参数并绘画

x=np.linspace(0,4)
y=-np.sqrt(4-(x-2)**2)+0.02
plt.fill(x,y,'white')
​
x=np.linspace(-4,0)
y=np.sqrt(4-(x+2)**2)
plt.fill(x,y-0.02,'black')

第五步,设置太极图小圆点的参数并绘画

r=0.37
plt.fill(r*np.cos(theta)-2,r*np.sin(theta),'white')
plt.fill(r*np.cos(theta)+2,r*np.sin(theta),'black')
plt.xticks([])
plt.yticks([])

一副太极图就画出来了:

Python|用matplotlib画太极图

好了,这就完成了数据分析师拜祖师爷的礼仪。

上一篇:JavaScript之fill、map


下一篇:Python学习笔记-发送一个邮件通知