Py学习  »  Python

看不了蓝血月?没关系,手把手教你用Python创造一个“超级蓝血月”!

小象 • 6 年前 • 959 次点击  

| 小象      | 小象君

“超级蓝血月”,153年才出现的奇观,就在今晚。

所谓“超级蓝血月”,实际上是:

超级月亮+蓝月+月全食——

“超级月亮”指的是月亮近地点恰逢满月;

蓝月(Blue Moon)则是一个自然月内出现两次满月

月全食时,呈赤铜色的月亮被称为血月(Blood moon)。

而今晚,这三个偶然事件将叠加出现,构成极为罕见的“超级蓝血月”。

上次小象君观看超级蓝血月的时候,还是1866年3月31日,一晃一百五十年过去了……所以,今晚这次超级蓝血月,是无论如何也不能错过的!

小象君的年龄?你猜…

可是,当小象君兴致勃勃滴邀约公司程序猿们一同观月时,开发部老大无情地宣布:今晚加班!

心里一万头草泥马奔过…

在小象君的强烈抗议并说明这次超级蓝血月有多么罕见的情况下,开发部老大扔过来一个轻蔑:

“不就是圆形红月亮吗?”

三分钟以后…

Python版蓝血月!

大家都学过Python,人和人就是不一样!

还能说啥?

于是乎,公司里的非单身狗都欢呼雀跃终于可以给对象有个交代了。

是的,我们美好单纯善良的程序员就是这么好糊弄…

生气归生气,小象君还是贱贱滴把代码要过来了…

就是这些,拿走不谢!




    
import numpy as np
import matplotlib.pyplot as plt

fig = plt.figure(figsize=(8,8))
ax = fig.add_subplot(111)
ax.spines['left'].set_color('none')
ax.spines['bottom'].set_color('none')
ax.spines['right'].set_color('none')
ax.spines['top'].set_color('none')
ax.set_xticks([])
ax.set_yticks([])

# 实现功能
theta = np.arange(0, 2 * np.pi + 0.1,2 * np.pi / 800)
x = np.cos(theta)
y = np.sin(theta)

v = np.linspace(0, 10, 80)
v.shape = (80, 1)
x = v * x
y = v * y

plt.style.use('ggplot')
plt.plot(x, y, color = (0.75, 0, 0))
plt.show()


下面是用Python画图的具体流程:

1

工具

装一个Anaconda3.exe

2

画圆公式

3

matplotlib建立一个画布

import numpy as np
import matplotlib.pyplot as plt

fig = plt.figure(figsize=(8,8))
ax = fig.add_subplot(111)
ax.spines[ 'left'].set_color('none')
ax.spines['bottom'].set_color('none')
ax.spines['right'].set_color('none')
ax.spines['top'].set_color('none')
ax.set_xticks([])
ax.set_yticks([])

4

实现

# 实现功能
theta = np.arange(0, 2 * np.pi + 0.1,2 * np.pi / 800)
x = np.cos(theta)
y = np.sin(theta)

v = np.linspace(0, 10, 80)
v.shape = (80, 1)
x = v * x
y = v * y

plt.style.use('ggplot')
plt.plot(x, y, color = (0.75, 0, 0))
plt.show()


想要zhuangbility的话,改下代码…

可以画出这种效果——

甚至,这种效果——

怎么实现?

参考这个著名的豆瓣画马教程吧……

为了让大家过得开心,小象君我尽力了……

最后,祝各位无论是看天的还是看电脑的,今晚快乐赏月!

-END-

技术实现参考自《python 如何用matplotlib画一个漂亮的圆》
作者:bd_area



今天看啥 - 高品质阅读平台
本文地址:http://www.jintiankansha.me/t/otCrrmuj4E
Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/6435
 
959 次点击