python:动态显示+双Y坐标+多图显示+最大化窗口+保存图片方法

实现效果如下图所示

 伪代码如下所示:

iters = 0
while 条件:
    iters +=1 
    RC[iters] += 更新
    RCIters.extend(RC.T.tolist()) 更新

    
    fig = plt.figure(1)
    #最大化显示
    manager = plt.get_current_fig_manager()
    manager.window.showMaximized()

    plt.ion() # 动态显示
    plt.clf() # 清屏

    left = fig.add_subplot(121)
    left.set_xlabel('X')
    left.set_ylabel('Y')
    left.set_title('回归')
    left.scatter(X[:, 0], Y, s=1) # 绘制散点
    # 为什么需要排序?因为plot默认是顺序绘制,当点都在一条直线上的时候,重叠在一起,看不出来
    # 当点不在一条直线上的时候,
    srtInd = X[:, 0].argsort(0).T.tolist()[0] # 排序,返回索引值
    xSort = X[srtInd][:, 0]
    left.plot(xSort, preY[srtInd], 'r') # 绘制拟合直线

    ax1 = fig.add_subplot(122)
    # 权重与迭代次数关系
    ax1.set_xlabel('迭代次数')
    ax1.set_ylabel('权重')
    ax1.set_title('批量梯度下降:同步更新参数')
    ax1.plot(RCIters)#绘制权重参数与迭代次数关系
    # 残差与迭代次数关系
    ax2 = ax1.twinx()
    ax2.set_ylabel('残差')
    ax2.set_xlabel('迭代次数')
    ax2.plot(LossList, 'k--')#绘制总残差线
    # 保存图片
    # plt.savefig('./Data/Gif/' + str(iters).zfill(3) + '.jpg')#填充数字
    plt.show()
    plt.pause(0.001)#延时
    plt.ioff() # 关闭交互模式

使用plot的时候哪种情况下需要先排序然后再绘制线段

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
可以使用Python中的OpenCV库来实现二值化图像的像素操作。以下是一段示例代码,可以实现你所需的功能: ```python import cv2 import numpy as np # 读取二值化图像 img = cv2.imread('binary_image.jpg', cv2.IMREAD_GRAYSCALE) # 获取图像宽度和高度 height, width = img.shape # 创建一个空白图像,用于绘制结果 result = np.zeros((height, width), np.uint8) # 遍历每个像素 for x in range(width): max_y = -1 for y in range(height): # 如果当前像素值为255(即白色) if img[y, x] == 255: # 如果当前y坐标大于之前记录的最大y坐标 if y > max_y: # 更新最大y坐标 max_y = y # 在结果图像上绘制当前像素点 result[y, x] = 255 # 如果当前像素值为0(即黑色) else: # 如果之前记录的最大y坐标不为-1(即存在白色像素点) if max_y != -1: # 退出循环 break # 如果当前x坐标只对应一个y坐标 if max_y != -1: # 在结果图像上绘制当前像素点 result[max_y, x] = 255 # 显示结果图像 cv2.imshow('Result', result) cv2.waitKey(0) cv2.destroyAllWindows() ``` 在代码中,我们先读取了一个二值化图像,并创建了一个空白图像用于绘制结果。随后,我们遍历了每个像素,并记录了每个x坐标下y坐标最大的白色像素点。如果当前x坐标只对应一个y坐标,我们也会在结果图像上绘制该像素点。最后,我们将结果图像显示出来。 需要注意的是,该代码仅适用于每个x坐标至多对应一个白色像素点的情况。如果一个x坐标对应多个白色像素点,仅会保留y坐标最大的像素点。如果需要保留其他像素点,可以根据自己的需求进行修改。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值