Loading [MathJax]/jax/output/CommonHTML/config.js
社区首页 >问答首页 >pyqtgraph中的matplotlib.pyplot.clim对应物

pyqtgraph中的matplotlib.pyplot.clim对应物
EN

Stack Overflow用户
提问于 2021-09-28 11:13:14
回答 1查看 188关注 0票数 1

我只想将色彩映射表(“热”)应用于图像的特定范围的值。我已经在matplotlib.pyplot.clim中了解了这个功能,您必须指定缩放的最小值和最大值。据我所知,您应该使用setLevels(min,max)来完成此任务。我已经包含了一个最小的例子,它表明不幸的是这两种表示不是等价的。

代码语言:javascript
代码运行次数:0
复制
import matplotlib.pyplot as plt
from matplotlib import cm
import numpy as np
import os
import pyqtgraph as pg
from pyqtgraph.Qt import QtCore, QtGui#, QtWidgets
#import PyQt5.QtCore
from PyQt5.QtCore import Qt
from PyQt5.QtWidgets import QApplication, QWidget, QMainWindow, QPushButton, QFileDialog, \
    QScrollArea, QVBoxLayout, QGroupBox, QLabel, QFormLayout, QComboBox, QHBoxLayout
from skimage import io    
import sys


def main():
    imarray = np.random.rand(100, 100) * 515
    imarray = np.clip(imarray, 0, 515)
    plt_example(imarray)
    pyqtgraph_example(imarray)

def plt_example(data):
    plt.imshow(data, cmap='hot')
    c = plt.colorbar()
    plt.clim(0, 200)
    plt.show()


def pyqtgraph_example(data):
    colormap = cm.get_cmap("hot")
    colormap._init()
    lut = (colormap._lut * 255).view(np.ndarray)
    app = pg.mkQApp("Test")

    
    win = pg.GraphicsLayoutWidget()
    win.show()
    win.setWindowTitle('pyqtgraph example: ImageItem')
    view = win.addViewBox()

    ## lock the aspect ratio so pixels are always square
    view.setAspectLocked(True)

    ## Create image item
    img = pg.ImageItem()
    view.addItem(img)

    img.setImage(data)
    img.setLevels([0, 200]) # same functionality as clim?
    img.setLookupTable(lut)

    app.exec()

if __name__ == "__main__":
    main()

你知道如何在pyqtgraph中获得与matplotlib中的clim相同的表示吗?第一张图片显示了使用matplotlib的结果,第二张图片显示了使用pyqtgraph的结果。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-10-01 09:29:30

这个问题出现在pyqtgraph的问题跟踪器上:https://github.com/pyqtgraph/pyqtgraph/pull/1985#issuecomment-932223288

下面是在两个库之间生成相同结果的一些代码

代码语言:javascript
代码运行次数:0
复制
import matplotlib.pyplot as plt
import numpy as np
import pyqtgraph as pg

def main():
    imarray = np.random.rand(100, 100) * 515
    imarray = np.clip(imarray, 0, 515)
    plt_example(imarray)
    pyqtgraph_example(imarray)

def plt_example(data):
    plt.imshow(data, cmap='hot')
    c = plt.colorbar()
    plt.clim(0, 200)
    plt.show(block=False)

def pyqtgraph_example(data):
    app = pg.mkQApp("Test")
    win = pg.GraphicsLayoutWidget()
    win.setWindowTitle('pyqtgraph example: ImageItem')
    win.show()

    # add plot with correct axis orientation and locked aspect ratio
    plot = win.addPlot()
    plot.setAspectLocked(True)
    plot.invertY()

    # Create image item
    img = pg.ImageItem(data, axisOrder='row-major')
    plot.addItem(img)

    # Create color bar and have it control image levels    
    cmap = pg.colormap.getFromMatplotlib('hot')
    cbi = pg.ColorBarItem(colorMap=cmap)
    cbi.setImageItem(img, insert_in=plot)
    cbi.setLevels([0, 200]) # colormap range

    app.exec()

if __name__ == "__main__":
    main()

问题跟踪器中这段代码的发帖者指出,在matplotlib中,"overflow“值似乎呈现为白色,而在pyqtgraph中呈现为黑色。此外,由于未设置轴顺序并且y轴可能颠倒,因此pyqtgraph图像向左旋转了90度。

为了获得正确的旋转方向,代码有两行说明

代码语言:javascript
代码运行次数:0
复制
plot.invertY()

代码语言:javascript
代码运行次数:0
复制
pg.ImageItem(data, axisOrder='row-major')

希望这能有所帮助!

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69367352

复制
相关文章
kubernetes | pod
基于centos7.9,docker-ce-20.10.18,kubelet-1.22.3-0
Amadeus
2022/10/25
6030
Kubernetes Pod基础
Pod是k8s系统中可以创建和管理的最小单元,是资源对象模型中由用户创建或部署的最小资源对象模型,也是在k8s上运行容器化应用的资源对象,其他的资源对象都是用来支撑或者扩展Pod对象功能的,比如控制器对象是用来管控Pod对象的,Service或者Ingress资源对象是用来暴露Pod引用对象的,PersistentVolume资源对象是用来为Pod提供存储等等,k8s不会直接处理容器,而是Pod,Pod是由一个或者多个container组成的。
kubernetes中文社区
2019/06/24
7380
Kubernetes Pod详解
Pod中通过共享Network Namespace的方式进行网络的共享,但是如果是以下方式进行Network Namespace共享会有问题:
shysh95
2022/05/24
7950
Kubernetes Pod详解
【Kubernetes系列】Pod
Pod是一组(一个或多个) 容器 ; 这些容器共享存储、网络、以及怎样运行这些容器的声明。 Pod 中的内容总是并置(colocated)的并且一同调度,在共享的上下文中运行。 Pod 所建模的是特定于应用的 “逻辑主机”,其中包含一个或多个应用容器, 这些容器相对紧密地耦合在一起。 在非云环境中,在相同的物理机或虚拟机上运行的应用类似于在同一逻辑主机上运行的云应用。
Java技术债务
2022/10/28
5930
Kubernetes Pod Evicted[通俗易懂]
近日 Kubernetes 测试集群 Pod 状态出现 Evicted 现象 , 但是项目还是能正常提供服务 , 最先的解决办法是手动将 Evicted 状态的 Pod 删除。
全栈程序员站长
2022/08/30
1.1K0
运维篇 k8s(Kubernetes)
k8s是kubernetes的简称,即字母“k”到最后一位相隔8位字母。名字来源于希腊语,意思是“舵手”或“领航员”。
用针戳左手中指指头
2021/01/29
3.2K0
运维篇 k8s(Kubernetes)
Kubernetes/K8S快速入门之Kind
Kind 文档 https://kind.sigs.k8s.io/docs/user/quick-start/
码客说
2021/03/04
3.9K0
查看 Docker cp 进度
docker cp 命令本身不提供进度查看功能。但是,您可以使用第三方工具,如 pv(Pipe Viewer)在执行 docker cp 时查看进度。以下是使用 pv 查看 docker cp 进度的步骤:
宋天伦
2023/10/21
4200
kubernetes 问题排查: 高版本 containerd 下载镜像失败
在 containerd 运行时的 kubernetes 线上环境中,出现了镜像无法下载的情况,具体报错如下:
CNCF
2021/05/27
9.6K2
kubernetes 问题排查: 高版本 containerd 下载镜像失败
kubeadm部署kubernetes集群
(3) 生成Kube Config文件,kubelet需要用这个文件与Master通信。
星哥玩云
2022/07/28
3170
深入玩转K8S之使用kubeadm安装Kubernetes v1.10以及常见问题解答
Kubernetes是Google开源的容器集群管理系统。它构建于docker技术之上,为容器化的应用提供资源调度、部署运行、服务发现、扩 容缩容等整一套功能,本质上可看作是基于容器技术的mini-PaaS平台。
DevinGeng
2019/04/09
1K0
Kubernetes 1.19.0——Pod(1)
kubectl run 名字 -image=镜像 --labels=”aa=bb,aa2=bb2...” --env=”k1=v1” --port=80 --image-pull-policy=策略
gz_naldo
2020/09/18
6910
Kubernetes 1.19.0——Pod(1)
Kubernetes 1.19.0——Pod(2)
所谓静态pod就是,不是master上创建的,而是需要到Node的/etc/kubelet.d/里创建一
gz_naldo
2020/09/19
7242
Kubernetes 1.19.0——Pod(2)
2.1 Kubernetes--Pod
  自主式Pod是不被控制器管理的Pod. 这种Pod死亡以后, 不会被重新启动. 这个Pod死了以后, 副本数就达不到期望值了, 也不会有人去创建一个新的Pod为达到副本数的期望值.
用户7798898
2020/09/27
7830
2.1 Kubernetes--Pod
kubernetes中的pod
在Kubernetes中,Pod是最小的可部署单元。Pod是一个逻辑主机,它可以包含一个或多个容器。每个Pod都有一个唯一的IP地址和一组共享的存储和网络资源。Kubernetes使用Pod来调度和管理应用程序的运行。
玖叁叁
2023/04/28
5780
Kubernetes 系列(3) —— Pod
Pod 是 Kubernetes 的基本操作单元,也是应用运行的载体,包含一个或多个密切相关的容器。整个 Kubernetes 系统都是围绕着 Pod 展开的,比如如何运行 Pod、如何保证 Pod 的数量,如何访问 Pod 等。
求和小熊猫
2021/09/10
9660
Kubernetes Pod 驱逐详解
在 Kubernetes 中,Pod 使用的资源最重要的是 CPU、内存和磁盘 IO,这些资源可以被分为可压缩资源(CPU)和不可压缩资源(内存,磁盘 IO)。可压缩资源不可能导致 Pod 被驱逐,因为当 Pod 的 CPU 使用量很多时,系统可以通过重新分配权重来限制 Pod 的 CPU 使用。而对于不可压缩资源来说,如果资源不足,也就无法继续申请资源(内存用完就是用完了),此时 Kubernetes 会从该节点上驱逐一定数量的 Pod,以保证该节点上有充足的资源。
米开朗基杨
2019/08/29
3.3K0
Kubernetes Pod 驱逐详解
Pod镜像拉取策略
在Kubernetes中,Pod是最小的可部署对象,可以由一个或多个容器组成。每个容器都运行在独立的镜像中。在本文中,我们将介绍Pod的镜像拉取策略,帮助您更好地了解和管理Pod的镜像。
玖叁叁
2023/04/29
6080
Kubernetes Pod 全面知识
Pod 是在 Kubernetes 中创建和管理的、最小的可部署的计算单元,是最重要的对象之一。一个 Pod 中包含一个或多个容器,这些容器在 Pod 中能够共享网络、存储等环境。
痴者工良
2021/11/30
8440
Kubernetes Pod 全面知识
Kubernetes Pod入门指南
Pod是Kubernetes项目里定义的最小可调度单元,是Kubernetes对应用程序的抽象。在这篇文章里我将会介绍Kubernetes里Pod的基本概念,使用方式,生命周期以及如何使用Pod部署应用。读这篇文章的朋友我会默认你已经了解Kubernete是用来解决什么问题的,以及电脑上已经安装了Minikube这个能试验Kubernetes功能的工具。如果尚未做好这些准备工作,推荐先去看下面的两篇文章做好准备工作后再来学习这里的内容。
KevinYan
2020/08/10
4740

相似问题

kubernetes无法拉取镜像运行pod

225

kubernetes多pod contianer继承镜像id

11

Docker镜像和它的Kubernetes Pod不同

24

Kubernetes Dashboard访问查看pod日志

10

Kubernetes Engine - Pod部署未更新到最新镜像

214
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档