2301_76211467 2024-10-05 10:52 采纳率: 0%
浏览 4

Python设置了figsize=(10,10)但是出图大小不一致

我使用Python编写了一段程序。循环画图,画随机游走图,设定了固定尺寸(figsize=(10,10),dpi=128),按理来说都应该是正方形的图,但是每一次出图经常不一样,有长方形的也有正方形的,显示出的大小不一。请问程序有啥问题吗?

while True:
    rw = RandomWalk()
    rw.fill_walk()
    plt.style.use('classic')
    fig,ax=plt.subplots(figsize=(10,10),dpi=128)
    point_numbers = range(rw.num_points)

    ax.scatter(rw.x_values,rw.y_values,c=point_numbers,cmap=plt.cm.Blues,
               edgecolors='none',s=1)
    ax.set_aspect('equal')
    ax.scatter(0,0,c='green',s=50)
    ax.scatter(rw.x_values[-1],rw.y_values[-1],c='red',s=50)

    ax.get_xaxis().set_visible(False)
    ax.get_yaxis().set_visible(False)
    plt.show()

    keep=input("是否继续?(y/n)")
    if keep=='n':
        break

  • 写回答

3条回答 默认 最新

  • 一轮明月照丘壑 2024-10-05 10:53
    关注

    以下回复参考:皆我百晓生券券喵儿等免费微信小程序作答:

    从你给出的代码来看,代码本身并没有明显的错误,并且你正确地设置了图的尺寸和DPI。然而,如果你发现每次生成的图像尺寸不一致,这可能是由于以下几个原因造成的:

    1. 外部因素: 确保你的绘图环境(例如Jupyter Notebook、IDE或其他绘图工具)没有设置影响图像尺寸的属性。有时候,外部工具可能会覆盖你设置的尺寸。
    2. 动态调整窗口大小: 如果你是通过某种界面(如Jupyter Notebook)查看图像,并且该界面在绘图后动态调整了窗口大小,这可能会导致图像尺寸发生变化。
    3. 显示设备或输出格式的影响: 如果你在不同的显示设备或输出格式(如PDF、PNG等)下查看图像,可能会有轻微的尺寸差异。这主要是因为不同的显示设备和输出格式可能有不同的分辨率和缩放设置。
    4. 图形库或后端的问题: 有时候,图形库或后端可能会引入一些不明显的差异。你可以尝试更新matplotlib或使用不同的绘图后端来看看是否有所改善。

    为了解决这个问题,你可以尝试以下几个步骤:

    1. 检查外部工具设置: 确保你的绘图环境没有设置影响图像尺寸的属性。
    2. 直接保存图像: 你可以尝试将图像保存到文件中(例如PNG或PDF格式),然后关闭绘图窗口,重新打开图像文件来查看实际的尺寸。这样你可以避免界面动态调整窗口大小导致的尺寸变化。
    3. 检查更新: 确保matplotlib库是最新版本,有时候升级到最新版本可以解决一些与绘图相关的问题。
    4. 尝试不同的显示设备和输出格式: 在不同的显示设备和输出格式下查看图像,看看是否仍然存在尺寸不一致的问题。

    如果上述步骤都无法解决问题,你可能需要更深入地调试你的代码和环境设置,或者考虑寻求更具体的帮助,例如通过matplotlib的官方文档或社区论坛。

    评论

报告相同问题?

问题事件

  • 创建了问题 10月5日

悬赏问题

  • ¥15 SPSS分类模型实训题步骤
  • ¥15 求解决扩散模型代码问题
  • ¥15 工创大赛太阳能电动车项目零基础要学什么
  • ¥20 limma多组间分析最终p值只有一个
  • ¥15 nopCommerce开发问题
  • ¥15 torch.multiprocessing.spawn.ProcessExitedException: process 1 terminated with signal SIGKILL
  • ¥15 QuartusⅡ15.0编译项目后,output_files中的.jdi、.sld、.sof不更新怎么解决
  • ¥15 pycharm输出和导师的一样,但是标红
  • ¥15 想问问富文本拿到的html怎么转成docx的
  • ¥15 我看了您的文章,遇到了个问题。