You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 23:48:03