用python画一个太极图
时间: 2024-09-10 16:13:47 浏览: 44
python turtle 绘制太极图的实例
要用Python画一个太极图,你可以使用matplotlib库,这是一个非常流行的绘图库,它提供了一个类似于MATLAB的绘图环境。以下是一个简单的代码示例,展示如何使用matplotlib来绘制一个太极图:
```python
import matplotlib.pyplot as plt
import numpy as np
def taiji():
fig = plt.figure(figsize=(6, 6))
ax = fig.add_axes([0,0,1,1])
ax.set_aspect('equal')
ax.axis('off') # 关闭坐标轴
# 太极图的外圆
circle = plt.Circle((0.5, 0.5), 0.4, color='black')
ax.add_artist(circle)
# 太极图的两个半圆
left_circle = plt.Circle((0.5, 0.5), 0.4, color='white', clip_on=False)
right_circle = plt.Circle((0.5, 0.5), 0.2, color='black', clip_on=False)
ax.add_artist(left_circle)
ax.add_artist(right_circle)
# 太极图中的两个小圆
small_black = plt.Circle((0.5, 0.5), 0.1, color='black')
small_white = plt.Circle((0.5, 0.5), 0.05, color='white')
ax.add_artist(small_black)
ax.add_artist(small_white)
# 太极图中的鱼眼
left_eye = plt.Circle((0.35, 0.5), 0.03, color='black')
right_eye = plt.Circle((0.65, 0.5), 0.03, color='white')
ax.add_artist(left_eye)
ax.add_artist(right_eye)
# 绘制阴阳鱼的鱼身
theta = np.linspace(0, np.pi, 100)
x_black = 0.5 + 0.1 * np.sin(theta) * np.cos(theta * 4)
y_black = 0.5 + 0.1 * np.sin(theta) * np.sin(theta * 4)
ax.fill_between(x_black, y_black, 0.5 - 0.2 * np.sin(theta), color='black')
x_white = 0.5 + 0.1 * np.sin(theta) * np.cos(theta * 4)
y_white = 0.5 + 0.1 * np.sin(theta) * np.sin(theta * 4)
ax.fill_between(x_white, y_white, 0.5 + 0.2 * np.sin(theta), color='white')
plt.show()
if __name__ == '__main__':
taiji()
```
这段代码首先定义了一个绘制太极图的函数`taiji`,然后在主函数中调用这个函数来显示太极图。代码中使用了`plt.Circle`来绘制不同颜色和大小的圆,以及`plt.fill_between`来填充阴阳鱼的形状。运行这段代码后,你会看到一个太极图。
阅读全文