社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Python

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

小象 • 7 年前 • 1119 次点击  

| 小象      | 小象君

“超级蓝血月”,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
 
1119 次点击