中秋快到了利用python画出月亮和月饼

目录
  • 一、🌕月亮
  • 二、🌕雪花月饼

一、🌕月亮

导入库matplotlibnumpy,作为工具直接用。

from mpl_toolkits.mplot3d import Axes3D
import matplotlib.pyplot as plt
import numpy as np

布局

创建一个长×宽的一个画布大小

fig = plt.figure(figsize=(10,5))

布置3D视角

ax = fig.add_subplot(121, projection='3d')

生成等差数列的数据,画出一个球体

x = np.linspace(0, 2 * np.pi, 100)
y = np.linspace(0, np.pi, 100)
x1 = 10 * np.outer(np.cos(x), np.sin(y))
y1 = 10 * np.outer(np.sin(x), np.sin(y))
z = 10 * np.outer(np.ones(np.size(x1)), np.cos(y1))
ax.plot_surface(x1, y1, z, color='yellow')

此时我们发现只画了一个月亮,所以我们打算画第二个月亮,凑成一对~

ax = fig.add_subplot(122, projection='3d')
x = np.linspace(0, 2 * np.pi, 100)
y = np.linspace(0, np.pi, 100)
x1 = 10 * np.outer(np.cos(x), np.sin(y))
y1 = 10 * np.outer(np.sin(x), np.sin(y))
z = 10 * np.outer(np.ones(np.size(x1)), np.cos(y1))
ax.plot_surface(x1, y1, z, color='r')

效果图

还可以吧~哈哈哈哈!

二、🌕雪花月饼

导入所需要的库,用的比较多的是turtle这个库来写的~

import turtle
import time

我们先画一个底层的黄黄的饼作为底部~

def circle():
    fillX_y(0, 0)
    turtle.color("#F0E68C")
    for _ in range(30):
        turtle.left(12)
        turtle.begin_fill()
        turtle.forward(230)
        turtle.circle(25, 180)
        turtle.goto(0, 0)
        turtle.left(180)
        turtle.end_fill()
        time.sleep(0.5)

既然是雪花月饼,就应该是有雪花,接下来我们来画雪花吧!

采用科赫曲线进行画雪花。要改变弯曲程度。

def koch(size, n):  # 定义弯曲的直线使其有棱角
    if n == 0:
        turtle.fd(size)
    else:
        for angle in [0, 60, -120, 60]:  # 每一次都对其进行合理的角度改变
            turtle.left(angle)
            koch(size / 3, n - 1)

因为打算画八个,并且加上颜色,所以七彩雪花~

if a == 1:
    turtle.color("black")  # 控制画笔的颜色
elif a == 2:
    turtle.color("purple")
elif a == 3:
    turtle.color("blue")
elif a == 4:
    turtle.color("Cyan")
elif a == 5:
    turtle.color("green")
elif a == 6:
    turtle.color("yellow")
elif a == 7:
    turtle.color("orange")
elif a == 8:
    turtle.color("red")

由于是八个雪花嵌套的,所以要进行一个等比缩放的包裹。

turtle.penup()
turtle.goto(-200 * (4 / 7) ** (s - n), 100 * (4 / 7) ** (s - n))
# 每一次都是需要合理的等比例的扩大或是缩小
turtle.pendown()
turtle.pensize(2)
level = 5
koch(400 * (4 / 7) ** (s - n), level)  # 大小是一个一个试出来的
# 不能超过setup的设定的范围 600,不然就越界了
turtle.right(120)
koch(400 * (4 / 7) ** (s - n), level)
turtle.right(120)
koch(400 * (4 / 7) ** (s - n), level)  # 注意这里koch一次就要转一次角度
turtle.right(120)
turtle.hideturtle()  # 隐藏画笔
flower(n - 1)

效果图!啊哈哈哈!是雪花月饼呀!

到此这篇关于中秋快到了利用python画出月亮和月饼的文章就介绍到这了,更多相关用python画出月亮和月饼内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

最后,希望我的中秋礼品能带给你一丝的欢喜~

提前祝中秋快乐鸭~

时间: 2021-09-15

Python Matplotlib绘制箱线图的全过程

目录 箱线图介绍 Matplotlib中绘制箱线图的方法:boxplot 程序举例 总结 箱线图介绍 箱线图(Box-plot)又称为盒式图或箱型图,是一种用来显示一组数据分散情况的统计图,它能显示一组数据的上界.下界.中位数.上下四分位数以及异常值等.箱线图的各部分组成及其含义如下图所示. 关键术语说明 四分位数: 四分位数:就是把一组数据按照从小到大的顺序进行排列,然后分成四等份,处于三个分割点位置的数字就是四分位数: 第一四分位数(q1):又称"较小四分位数"或"下四分

Python函数式编程中itertools模块详解

目录 容器与可迭代对象 count() 函数 cycle 函数 repeat 函数 enumerate 函数,添加序号 accumulate 函数 chain 与 groupby 函数 zip_longest 与 zip tee 函数 compress 函数 islice.dropwhile.takewhile.filterfalse.filter 总结 容器与可迭代对象 在正式开始前先补充一些基本概念在 Python 中存在容器 与 可迭代对象 容器:用来存储多个元素的数据结构,例如 列表,元

10个使用Python必须知道的内置函数

目录 1. reduce() 2. split() 3. enumerate() 4. map() 5. getattr() 6. slice 7. sorted() 8. format 9. join() 10. type 1. reduce() reduce() 是 functools 模块下面的一个函数,接收两个参数,一个是函数对象,一个是可迭代对象(比如list), reduce每次会把迭代对象中的下一个元素作用在函数上做累积计算,最后得到一个值. 来看个例子你就明白,创建函数 : #

浅谈Python的元编程

目录 一.装饰器 二.装饰器的执行顺序 三.元类 四.descriptor 类(描述符类) 五.总结 相应的元编程就是描述代码本身的代码,元编程就是关于创建操作源代码(比如修改.生成或包装原来的代码)的函数和类.主要技术是使用装饰器.元类.描述符类. 一.装饰器 装饰器就是函数的函数,它接受一个函数作为参数并返回一个新的函数,在不改变原来函数代码的情况下为其增加新的功能,比如最常用的计时装饰器: from functools import wraps def timeit(logger=None

Python3.10的一些新特性原理分析

Python 3.10.0a2 版本已经于 2020-11-04 发布,因此我们可以窥见 Python 3.10 的一些新特性.这些新特性很可能会改变未来的 Python 生态系统,使其朝着更明确,更易读的方向发展,同时保持我们熟知和喜欢的易用性. PEP 602 1.类型注释的进一步扩展 3.9 版对 Python 中的类型提示和注释进行了大幅度修改和清理,类型提示这似乎是一种持续的趋势,在 3.10 中得到进一步扩展,目的很明显,是为了更好的可读性,无需看代码即可得知变量和函数返回值的类型.

Python编程编写完善的命令行工具

目录 1. python-fire 2. mando 最后的话 1. python-fire python-fire 是一个三方库,可以将任何 Python 对象变成一个命令行接口. 使用前先 pip install fire 下. 可以把你的函数直接变成命令行接口: import fire def hello(name="World"): return "Hello %s!" % name if __name__ == '__main__': fire.Fire(

Python 标准库zipfile将文件夹加入压缩包的操作方法

zipfile模块是python中一个处理压缩文件的模块,解决了不少我们平常需要处理压缩文件的需求.大家还知道Python zipfile 库可用于压缩/解压 zip 文件. 本文介绍一下如何创建压缩包. 将 "文件" 加入压缩包 假设目录结构如下: my_project |- 唐诗三百首.txt # 这是要打包的文件 |- demo.py # 演示代码会在这里编写 |- _______ # 我们想要在这里生成一个名为 "output.zip" 的文件 "

关于Python中的if __name__ == ‘__main__’详情

目录 1.程序入口 2.__name__是什么? 场景1:直接运行脚本 场景2:从其他脚本导入 3.__name__可以显示包路径 5.测试模块里函数 关于在学习Python的过程中,遇到的这类似的代码: if __name__ == "__main__":     print("Hello World!") 1.程序入口 对于很多编程语言来说,程序都必须要有一个入口,比如 C,C++,以及完全面向对象的编程语言 Java,C# 等.如果你接触过这些语言,对于程序入

Python黑魔法之metaclass详情

目录 一.什么是 metaclass 二.metaclass 能解决什么问题? 三.通过一个实例来理解 metaclass 四.Python 底层语言设计层面是如何实现 metaclass 的? 1.所有的 Python 的用户定义类,都是 type 这个类的实例. 2.用户自定义类,只不过是 type 类的 __call__ 运算符重载 3.,"超越变形"正常的类 四.使用 metaclass 的风险 关于Python 黑魔法 metaclass 的两种极端观点: 这种特性太牛逼了,

Python使用bar绘制堆积/带误差棒柱形图的实现

本博文源于<python数据可视化>(黑马程序员编著).先讲解bar参数如何使用,然后分别演示堆积柱形图和带误差柱形图画法. bar参数 bar(x,height,width=0.8,bottom=None,align='center',data=None, tick_label=None,xerr=None,yerr=None,error_kw=None,**kwargs) 该函数常用参数如下: x 表示x的坐标值 height:表示柱形的高度 width:表示柱形的宽度,默认为0.8 bo

python使用matplotlib绘制柱状图教程

Matplotlib的概念这里就不多介绍了,关于绘图库Matplotlib的安装方法:点击这里 小编之前也和大家分享过python使用matplotlib实现的折线图和制饼图效果,感兴趣的朋友们也可以点击查看,下面来看看python使用matplotlib绘制柱状图的方法吧,具体如下: 1. 基本的柱状图 import matplotlib.pyplot as plt data = [5, 20, 15, 25, 10] plt.bar(range(len(data)), data) plt.s

python使用PyGame绘制图像并保存为图片文件的方法

本文实例讲述了python使用PyGame绘制图像并保存为图片文件的方法.分享给大家供大家参考.具体实现方法如下: ''' pg_draw_circle_save101.py draw a blue solid circle on a white background save the drawing to an image file for result see http://prntscr.com/156wxi tested with Python 2.7 and PyGame 1.9.2

Python和Perl绘制中国北京跑步地图的方法

当你在一个城市,穿越大街小巷,跑步跑了几千公里之后,一个显而易见的想法是,我到底和之前比快了多少,跑量有何变化,如果能把在这个城市的所有路线全部画出来,会是怎样的景象呢? 1.数据来源:益动GPS 文章代码比较多,为了不吊人胃口,先看看最终效果: [/code] 首先需要有原始数据信息,手机上众多跑步软件提供了详细的记录,但它们共同的问题是不允许自由导入导出(可能是为了用户粘性吧).因此有一块智能运动手表应该是不二之选.我的是Garmin Fenix3,推荐一下: 益动GPS算是业界良心了,能够

python pyheatmap包绘制热力图

利用python pyheatmap包绘制热力图,供大家参考,具体内容如下 import matplotlib.pyplot as plt from pyheatmap.heatmap import HeatMap def plot_data(filename): with open(filename,'r') as fh: data=fh.read().split('\n') xs = [] ys = [] data_test=[] for line in data: line=line.st

Python 堆叠柱状图绘制方法

本文介绍了Python 堆叠柱状图绘制方法,分享给大家,具体如下: ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' >>文件: 堆叠直方图.py >>作者: liu yang >>邮箱: liuyang0001@outlook.com >>博客: www.cnblogs.com/liu66blog '''''

使用Python为中秋节绘制一块美味的月饼

对于在外的游子,每逢佳节倍思亲.而对于996ICU的苦逼程序猿们,最期待的莫过于各种节假日能把自己丢在床上好好休息一下了.这几天各公司都陆续开始发中秋礼品了.朋友圈各种秀高颜值的月饼,所以今天我也提前给大家送去一份中秋的美味月饼吧! python & turtle python的turtle库,最早还是在小甲鱼的[零基础入门学习Python]中接触的,好久没用了有些生疏,带大家一起回顾下模块的使用吧. 如果你是想认真学习这个库,推荐去官网仔细学习 https://docs.python.org/

Python利用matplotlib绘制约数个数统计图示例

本文实例讲述了Python利用matplotlib绘制约数个数统计图.分享给大家供大家参考,具体如下: 利用Python计算1000以内自然数的约数个数,然后通过matplotlib绘制统计图. 下图为约数个数的散点图及其分布情况的条形图. Python代码: import collections import matplotlib.pyplot as plt def countDivisors(num): ans = 1 x = 2 while x * x <= num: cnt = 1 wh

Python使用matplotlib绘制动画的方法

本文实例讲述了Python使用matplotlib绘制动画的方法.分享给大家供大家参考.具体分析如下: matplotlib从1.1.0版本以后就开始支持绘制动画 下面是几个的示例: 第一个例子使用generator,每隔两秒,就运行函数data_gen: # -*- coding: utf-8 -*- import numpy as np import matplotlib.pyplot as plt import matplotlib.animation as animation fig =

python使用multiprocessing模块实现带回调函数的异步调用方法

本文实例讲述了python使用multiprocessing模块实现带回调函数的异步调用方法.分享给大家供大家参考.具体分析如下: multipressing模块是python 2.6版本加入的,通过这个模块可以轻松实现异步调用 from multiprocessing import Pool def f(x): return x*x if __name__ == '__main__': pool = Pool(processes=1) # Start a worker processes. r

Python基于matplotlib绘制栈式直方图的方法示例

本文实例讲述了Python基于matplotlib绘制栈式直方图的方法.分享给大家供大家参考,具体如下: 平时我们只对一组数据做直方图统计,这样我们只要直接画直方图就可以了. 但有时候我们同时画多组数据的直方图(比如说我大一到大四跑大学城内环的用时的分布),大一到大四用不同颜色的直方图,显示在一张图上,这样会很直观. #!/usr/bin/env python # -*- coding: utf-8 -*- #http://www.jb51.net/article/100363.htm # nu