鱼C论坛

 找回密码
 立即注册
查看: 4383|回复: 6

[已解决]为什么画完图像后用plt.close不能关闭?

[复制链接]
发表于 2020-4-21 10:07:23 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
我想让程序通过迭代,将每一个直线都画出来。可是需要一直手动关闭一个才能继续循环,怎么能够自动关闭窗口进行循环呢?

   fig1 = plt.figure(num=1,figsize=(8,5))       # 设置图的编号及大小
                  
    for i in range(5):
        X1 = X[i,1]                    # 设置变量X1,X2
        X2 = X[i,2]
        if t[i] == 0:
            plt.scatter(X1,X2,c='b')      # 设置图的两个变量并根据t的不同将点分类
        else:
            plt.scatter(X1,X2,c='r')
    plt.xlim((-3.0,3.0))                  # 设置x轴的上下限
    plt.ylim((-3.0,3.0))                  # 设置y轴的上下限

    plt.title('Perceptron')         # 设置图的标题

    plt.xlabel("X1")                       # 给图标的横纵坐标命名

    plt.ylabel("X2")

   
    k1 = -W[1,0]/W[2,0]
    k2 = -W[0,0]/W[2,0]
   
    X1 = np.linspace(-3,3)                 # 设置变量X1
    X2 = k1 * X1 + k2
   
    plt.plot(X1,X2, color='green',linewidth=1.5,linestyle="-")  # 设置图的变量X1,X2以及颜色、宽度及图线的类型
    plt.show()
    plt.close(fig1)
最佳答案
2020-4-21 11:06:14
Wss312 发表于 2020-4-21 10:44
折线图和散点图不在一个循环内

我明白你什么意思了。
- 不知道你会不会matplot面向对象绘图的方法。
- 如果使用循环直接绘制的话,只能用pylot.subplot()来实例化绘图区域的方法

- 如果直接调用pyplot的绘图的API,就需要把你循环生成的数据分别存储,然后分别调用pyplot.plot()
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-4-21 10:39:22 | 显示全部楼层
你的for循环下画的是散点图,你的折线图不在for循环下啊
- 你是想把散点图和折线图画在一个绘图区域?
- 还是说你这段代码是在一个循环体内的?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-4-21 10:43:49 | 显示全部楼层
会计的会怎么念 发表于 2020-4-21 10:39
你的for循环下画的是散点图,你的折线图不在for循环下啊
- 你是想把散点图和折线图画在一个绘图区域?
-  ...

画在一个区域,折线图通过迭代将散点图分开。我写的是在一个for循环内的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-4-21 10:44:53 | 显示全部楼层
会计的会怎么念 发表于 2020-4-21 10:39
你的for循环下画的是散点图,你的折线图不在for循环下啊
- 你是想把散点图和折线图画在一个绘图区域?
-  ...

折线图和散点图不在一个循环内
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-4-21 11:01:11 | 显示全部楼层
plt.show(block=False)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-4-21 11:06:14 | 显示全部楼层    本楼为最佳答案   
Wss312 发表于 2020-4-21 10:44
折线图和散点图不在一个循环内

我明白你什么意思了。
- 不知道你会不会matplot面向对象绘图的方法。
- 如果使用循环直接绘制的话,只能用pylot.subplot()来实例化绘图区域的方法

- 如果直接调用pyplot的绘图的API,就需要把你循环生成的数据分别存储,然后分别调用pyplot.plot()
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-4-21 11:40:00 | 显示全部楼层
会计的会怎么念 发表于 2020-4-21 11:06
我明白你什么意思了。
- 不知道你会不会matplot面向对象绘图的方法。
- 如果使用循环直接绘制的话,只 ...

这个还没有用过学学
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-5-28 05:52

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表