普通网友 2023-09-02 17:39 采纳率: 0%
浏览 46

python绘制图形问题

在用python蒙特卡洛算法绘制图形时,发现坐标的值很模糊,不知道哪里出了问题,麻烦指点一下

import matplotlib.pyplot as plt
import matplotlib.patches as mpatches
import numpy as np
import sys
a = mpatches.Circle([0, 0], radius=5, edgecolor='r', fill=False)#圆心,半径长度,圈的颜色,无填充
plt.xlim(-80, 80)
plt.ylim(-80, 80)
plt.axes().add_patch(a)  # 在坐标轴里面添加圆
N = 1000  # 1000次投圈
b,c = 0, 20  # 投圈中心点围绕物品中心呈二维正态分布,均值为0,标准差为20cm
d = c * np.random.randn(N, 2) + b#np.random.randn(返回数组个数, 返回数组维度)
plt.scatter([x[0] for x in d], [x[1] for x in d], c=np.random.rand(N), alpha=1)#点的x轴坐标,点的y轴坐标,点的颜色,点的透明度
plt.show()


img

  • 写回答

1条回答 默认 最新

  • CSDN-Ada助手 CSDN-AI 官方账号 2023-09-02 20:32
    关注

    【以下回答由 GPT 生成】

    在你的代码中,坐标值模糊的问题可能出现在以下几个地方:

    1. 使用plt.axes().add_patch(a)时,应该先使用plt.figure()创建一个新的Figure对象,然后再使用add_subplot()或add_axes()添加子图或坐标轴。修改代码如下:
    fig = plt.figure()
    ax = fig.add_subplot(1, 1, 1)
    ax.add_patch(a)
    
    1. 在绘制散点图时,你使用了随机生成的坐标d,但是你将颜色c设为了np.random.rand(N),这样会导致每个点的颜色都是随机的。为了使颜色与坐标相对应,你可以将c改为一个与d对应的颜色映射(例如根据坐标的x或y值来决定颜色),或者使用单一颜色来表示所有点。以下是两种示例:

    将c改为与d对应的颜色映射,根据x坐标确定颜色:

    c = [x[0] for x in d] # 使用x坐标作为颜色映射的依据
    plt.scatter([x[0] for x in d], [x[1] for x in d], c=c, cmap='cool', alpha=1) # 使用cool colormap
    

    将c设为单一颜色,例如红色:

    c = 'red' # 单一颜色
    plt.scatter([x[0] for x in d], [x[1] for x in d], c=c, alpha=1)
    
    1. 可能还有其他未知的问题导致坐标值模糊。如果以上修改后还是存在问题,你可以尝试使用不同的坐标轴相关的函数(例如plt.gca())来设置坐标轴的参数,或者查看其他代码部分是否有影响坐标值模糊的部分。

    希望以上解决方案能够帮助你解决问题!如果还有其他疑问,请随时提问。



    【相关推荐】



    如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^
    评论

报告相同问题?

问题事件

  • 创建了问题 9月2日

悬赏问题

  • ¥30 vs2010开发 WFP(windows filtering platform)
  • ¥15 服务端控制goose报文控制块的发布问题
  • ¥15 学习指导与未来导向啊
  • ¥15 求多普勒频移瞬时表达式
  • ¥15 如果要做一个老年人平板有哪些需求
  • ¥15 k8s生产配置推荐配置及部署方案
  • ¥15 matlab提取运动物体的坐标
  • ¥15 人大金仓下载,有人知道怎么解决吗
  • ¥15 一个小问题,本人刚入门,哪位可以help
  • ¥30 python安卓开发