在jupyter notebook用python画雪花
时间: 2023-07-25 16:07:04 浏览: 130
以下是用 Python 在 Jupyter Notebook 中画雪花的示例代码:
```python
import turtle
def snowflake(length_side, levels):
if levels == 0:
turtle.forward(length_side)
return
length_side /= 3.0
snowflake(length_side, levels-1)
turtle.left(60)
snowflake(length_side, levels-1)
turtle.right(120)
snowflake(length_side, levels-1)
turtle.left(60)
snowflake(length_side, levels-1)
turtle.speed(0)
for i in range(3):
snowflake(200, 4)
turtle.right(120)
turtle.hideturtle()
```
运行后,会在画布中央画出一个大小适中的雪花。可以自己调整 `snowflake` 函数的输入参数,来改变雪花的大小和层数。
相关问题
在anacondas中用matplotlib库画雪花,让雪花内部填充橙色。
你好,我是 ChitGPT。谢谢你的提问!让我们开始回答你的问题。
要在 anacondas 中使用 matplotlib 库画雪花并将其内部填充橙色,可以按照以下步骤操作:
1. 导入 matplotlib 库并设置绘图的样式。在 Jupyter Notebook 中,可以使用以下代码:
```python
import matplotlib.pyplot as plt
%matplotlib inline
# 设置绘图样式
plt.style.use('seaborn-whitegrid')
```
2. 创建一个正六边形作为雪花的形状。在 matplotlib 中,可以使用 Polygon 类。
```python
import numpy as np
# 定义正六边形的顶点坐标
hexagon_xy = np.array([
[np.cos(np.pi/6), np.sin(np.pi/6)],
[np.cos(np.pi/2), np.sin(np.pi/2)],
[np.cos(5*np.pi/6), np.sin(5*np.pi/6)],
[-np.cos(5*np.pi/6), np.sin(5*np.pi/6)],
[-np.cos(np.pi/2), np.sin(np.pi/2)],
[-np.cos(np.pi/6), np.sin(np.pi/6)]
])
# 在(0, 0)处创建正六边形
hexagon = plt.Polygon(hexagon_xy, closed=True, fill=None, edgecolor='black')
```
3. 创建一个圆形作为雪花内部的填充区域,并将其和正六边形组合起来。
```python
# 创建一个填充区域,半径为正六边形的内切圆半径
circle = plt.Circle((0, 0), 0.5/np.cos(np.pi/6), color='orange')
# 将正六边形和圆形组合起来
flake = plt.Polygon(hexagon_xy, closed=True, color='white')
flake_ax = plt.gca()
flake_ax.add_artist(flake)
flake_ax.add_artist(circle)
```
4. 调整绘图的大小和显示的范围,并显示出雪花图形。
```python
# 调整绘图的大小和显示范围
plt.axis('scaled')
plt.xlim(-1.2, 1.2)
plt.ylim(-1.2, 1.2)
# 显示出雪花图形
plt.show()
```
完整的代码如下:
```python
import numpy as np
import matplotlib.pyplot as plt
%matplotlib inline
# 设置绘图样式
plt.style.use('seaborn-whitegrid')
# 定义正六边形的顶点坐标
hexagon_xy = np.array([
[np.cos(np.pi/6), np.sin(np.pi/6)],
[np.cos(np.pi/2), np.sin(np.pi/2)],
[np.cos(5*np.pi/6), np.sin(5*np.pi/6)],
[-np.cos(5*np.pi/6), np.sin(5*np.pi/6)],
[-np.cos(np.pi/2), np.sin(np.pi/2)],
[-np.cos(np.pi/6), np.sin(np.pi/6)]
])
# 在(0, 0)处创建正六边形
hexagon = plt.Polygon(hexagon_xy, closed=True, fill=None, edgecolor='black')
# 创建一个填充区域,半径为正六边形的内切圆半径
circle = plt.Circle((0, 0), 0.5/np.cos(np.pi/6), color='orange')
# 将正六边形和圆形组合起来
flake = plt.Polygon(hexagon_xy, closed=True, color='white')
flake_ax = plt.gca()
flake_ax.add_artist(flake)
flake_ax.add_artist(circle)
# 调整绘图的大小和显示范围
plt.axis('scaled')
plt.xlim(-1.2, 1.2)
plt.ylim(-1.2, 1.2)
# 显示出雪花图形
plt.show()
```
希望我的回答对你有帮助。如果你有其他问题,可以随时问我。
阅读全文