python pyqt绘制直方图
# -*- coding: utf-8 -*-
"""
In this example we draw two different kinds of histogram.
""" from qtpy import QtWidgets, QtGui, QtCore
from qtpy.QtWidgets import QApplication, QWidget
import datetime as dt
from vnpy.trader import *
from vnpy.trader.uiKLine import *
from vnpy.trader.widget.crosshairTool import CrosshairTool
import pyqtgraph as pg
import numpy as np
import matplotlib.pyplot as plt
import matplotlib.mlab as mlab
import sys
class HistogramLUTWidget(QWidget):
def __init__(self, data, parent=None):
self.parent = parent
self.data = data
super(HistogramLUTWidget, self).__init__(parent) # 继承
# 界面布局
self.pw=pg.PlotWidget() self.lay_KL = pg.GraphicsLayout(border=(100, 100, 100))
self.lay_KL.setContentsMargins(10, 10, 10, 10)
self.lay_KL.setSpacing(0)
self.lay_KL.setBorder(color=(255, 255, 255, 255), width=0.8)
self.lay_KL.setZValue(0)
self.pw.setCentralItem(self.lay_KL)
# # 设置横坐标
# xdict = dict(enumerate(self.data["timeList"]))
# self.axisTime = MyStringAxis(xdict, orientation='bottom')
# # 初始化子图
self.initplotpnl()
# # 注册十字光标
x=[]
viwe = self.plt
self.crosshair = CrosshairTool(self.pw, x, viwe, self)
# 设置界面
self.vb = QtWidgets.QVBoxLayout()
self.vb.addWidget(self.pw)
self.setLayout(self.vb)
# ---------------------------------------------------------------------- def initplotpnl(self, xmin=0, xmax=-1):
vals = np.hstack(self.data)
xMin = min(self.data)
xMax = max(self.data)
#histogram
#y, x = np.histogram(vals, bins=np.linspace(xMin,xMax, 100),normed=False,density=True)
# #hist
nx, xbins, ptchs = plt.hist(self.data, bins=50, normed=True, facecolor='black', edgecolor='black',alpha=1,histtype = 'bar')
histo = plt.hist(self.data, 50)
vb = CustomViewBox()
# self.plt=pg.PlotItem(viewBox=vb, axisItems={'bottom': self.axisTime})#设置x轴
self.plt = pg.PlotItem(viewBox=vb)
leng_ = len(self.data)
self.plt.setRange(xRange=(0, leng_), yRange=(xMin, xMax))
# #histogram
# self.plt.plot(x, y, stepMode=True, fillLevel=0, brush=(0, 0, 255, 50),size=0.4)#绘制统计所得到的概率密度,直方图,没有边界分割线
##hist bar
width = xbins[1] - xbins[0] # Width of each bin.
#self.plt.plot(x,y,width=width)# 绘制统计所得到的概率密度,线形图
self.pi=pg.BarGraphItem(x=histo[1][0:50],height=histo[0],width=width, color='y',)# 绘制统计所得到的概率密度,bar图
self.plt.addItem(self.pi)
self.lay_KL.addItem(self.plt) def refresh(self):
"""
刷新子图的现实范围
"""
leng_ = len(self.data)
xMin = min(self.data)
xMax = max(self.data)
self.plt.setRange(xRange=(0, leng_), yRange=(xMin, xMax)) if __name__ == '__main__':
app = QApplication(sys.argv)
ex = HistogramLUTWidget()
sys.exit(app.exec_()) ####才接触,项目急没有细研究,有错误的改正的地方,望大家不吝指出
python pyqt绘制直方图的更多相关文章
- Python使用Plotly绘图工具,绘制直方图
今天我们再来讲解一下Python使用Plotly绘图工具如何绘制直方图 使用plotly绘制直方图需要用到graph_objs包中的Histogram函数 我们将数据赋值给函数中的x变量,x = da ...
- Python:matplotlib绘制直方图
使用hist方法来绘制直方图: 绘制直方图,最主要的是一个数据集data和需要划分的区间数量bins,另外你也可以设置一些颜色.类型参数: plt.hist(np.random.randn(1 ...
- NumPy使用 Matplotlib 绘制直方图
NumPy - 使用 Matplotlib 绘制直方图 NumPy 有一个numpy.histogram()函数,它是数据的频率分布的图形表示. 水平尺寸相等的矩形对应于类间隔,称为bin,变量hei ...
- matplotlib绘制直方图【柱状图】
代码: def drawBar(): xticks = ['A', 'B', 'C', 'D', 'E']#每个柱的下标说明 gradeGroup = {'A':200,'B':250,'C':330 ...
- Python实现图像直方图均衡化算法
title: "Python实现图像直方图均衡化算法" date: 2018-06-12T17:10:48+08:00 tags: [""] categorie ...
- 关于matplotlib绘制直方图偏移的问题
在使用pyplot绘制直方图的时候我发现了一个问题,在给函数.hist()传参的时候,如果传入的组数不是刚刚好(就是说这个组数如果是使用(最大值-最小值)/组距计算出来,而这个数字不是整除得来而是取整 ...
- 使用Python统计函数绘制简单图形matplotlib
1.bar() -- 绘制柱状图 plt.bar(x,y,align="center",color="b",tick_label=["a", ...
- Python turtle绘制阴阳太极图代码解析
本文详细分析如何使用Python turtle绘制阴阳太极图,先来分解这个图形,图片中有四种颜色,每条曲线上的箭头表示乌龟移动的方向,首先从中心画一个半圆(红线),以红线所示圆的直径作半径画一个校园, ...
- MFC绘制直方图和饼图
转载原文: Normal 0 7.8 磅 0 2 false false false EN-US ZH-CN X-NONE /* Style Definitions */ table.MsoNorma ...
随机推荐
- VPS安全配置
VPS安全配置 购买VPS后重装操作系统,以windows server 2008为例. 1 登录服务器 重装操作系统后,第一时间登录服务器,迅速进行安全配置. VPN-->Remote Des ...
- Android Profiler内存检测
Memory Profiler是Android Profiler中的一个组件,Android Profiler是Android3.0用来替换之前Android Monitor的观察工具,主要用来观察内 ...
- 前端多选插件bootstrap-select的使用
一.分别引入bootstrap-select.min.js和bootstrap-select.min.css文件 二.在页面中写一个class为selectpicker的select控件 <se ...
- ForkJoinPool
fork():开启一个新线程(或是重用线程池内的空闲线程),将任务交给该线程处理. join():等待该任务的处理线程处理完毕,获得返回值. ForkJoinPool 的每个工作线程都维护着一个工作队 ...
- A Simple Chess (Lucas组合数 + 容斥)
题意:走马步,要求向右向下,不能走进禁止的点.求方案数. 思路:若是n*m比较小的话,那么可以直接DP.但是这道题目不行.不过我们仔细分析可以知道从某个点到某个点是一个组合数,但是数据太大,mod值很 ...
- 关于Java多线程的线程同步和线程通信的一些小问题(顺便分享几篇高质量的博文)
Java多线程的线程同步和线程通信的一些小问题(顺便分享几篇质量高的博文) 前言:在学习多线程时,遇到了一些问题,这里我将这些问题都分享出来,同时也分享了几篇其他博客主的博客,并且将我个人的理解也分享 ...
- 微信小程序将网络图片转化为base64
网络图片需用wx.downloadFile下载,然后调用微信自带的base64转化 可能会存在兼容, let image_to_base64 = function(img){ return new P ...
- AbstractMethodError:
AbstractMethodError: This java.lang.AbstractMethodError is usually thrown when we try to invoke the ...
- 使用PowerDesigner 15进行逆向工程生成数据库图表时,列的注释问题
上一章讲了对数据库进行逆向工程生成图表操作,可能会遇到无法生成注释的问题: 一.解决PowerDesigner逆向工程没有列注释 1.打开PowerDesigner 15,选择菜单:File→Reve ...
- ES6 - Map
含义和基本用法 Map对象就是简单的键值对映射.其中的键和值可以使任意值.(ps : 对象的键只能是字符串 ) JavaScript 的对象(Object),本质上是键值对的集合(Hash 结构) ...