如何使用matplotlib根据用户输入的点数绘制圆形坐标图
思路正确性说明
你平分360度生成等角度坐标点的思路是完全正确的,仅需要注意Python标准库math中的正弦、余弦函数接收的是弧度值,计算前需要把角度转换为弧度即可。
完整实现代码
import matplotlib.pyplot as plt import math # 获取用户输入 ky_N = input('Enter the number of segments: ') ky_x_values = [] ky_y_values = [] ky_n = int(ky_N) ky_angle_step = 360 / ky_n # 循环计算每个点的坐标 for i in range(ky_n): current_angle = i * ky_angle_step # 角度转弧度 radian = math.radians(current_angle) # 单位圆坐标计算 ky_x_values.append(math.cos(radian)) ky_y_values.append(math.sin(radian)) # 对应要求ii:选择美观的绘图样式 plt.style.use('seaborn-v0_8') # 对应要求iii:创建fig和ax,同时绘制折线和散点 fig, ax = plt.subplots(figsize=(6, 6)) # 正方形画布避免圆形变形 # 对应要求v:自定义线宽、颜色 ax.plot(ky_x_values + [ky_x_values[0]], ky_y_values + [ky_y_values[0]], color='#165DFF', linewidth=2.5) ax.scatter(ky_x_values, ky_y_values, color='#FF7D00', s=50, zorder=5) # zorder让散点显示在折线上层 # 对应要求iv:自定义坐标轴、标题和字体大小 ax.set_xlabel('X 轴', fontsize=12) ax.set_ylabel('Y 轴', fontsize=12) ax.set_title(f'基于{ky_n}个等分点绘制的圆形', fontsize=16, pad=20) ax.set_aspect('equal') # 强制坐标轴等比例,保证显示为正圆 # 对应要求vi:展示图表 plt.show()
实现说明
- 计算坐标时额外将第一个点补充到列表末尾,是为了让折线闭合形成完整的圆形
- 画布设置为正方形+坐标轴等比例,避免圆被拉伸为椭圆
- 散点设置更高的zorder,保证不会被折线覆盖,视觉效果更清晰
内容的提问来源于stack exchange,提问作者Luxe
相关产品推荐
相关产品推荐

