当前位置: 首页 > news >正文

做门户网站的营业范围/每日财经要闻

做门户网站的营业范围,每日财经要闻,做一个搜索引擎网站要多少钱,邹城网站开发本篇将会涉及:pyqtgraph绘图库在GUI中集成一个pyqtgraphpyqtgraph绘图库在GUI中集成图形工具是很多桌面程序常有的功能,最为普遍的,就是各种投资交易工具中的价格走势图。比如股票的指数走势,股票的K线图等。在PyQt的应用程序中集…

本篇将会涉及:

  • pyqtgraph绘图库
  • 在GUI中集成一个pyqtgraph

pyqtgraph绘图库

在GUI中集成图形工具是很多桌面程序常有的功能,最为普遍的,就是各种投资交易工具中的价格走势图。比如股票的指数走势,股票的K线图等。

在PyQt的应用程序中集成图绘功能,有很多种方案,比如:

  • OpenGL:一个功能强大的二维三维专业图形绘制工具;
  • Matplotlib:Python中很经典的图形绘制模块;
  • PyQtGraph:基于Qt平台,提供交互的数据显示图形绘制。

各种图形绘制方案都有自己的优点,但是论与PyQt程序的融合度,还是当属PyQtGraph。

PyQtGraph用于图形绘制有很多的优势:

  • 拥有丰富的图形种类;
  • 能够快速地实时更新绘图数据;
  • 能够进行交互式的操作;
  • 多种标记功能;
  • ……

PyQtGraph的安装很简单,使用pip就可以直接安装:

pip install pyqtgraph

安装之后直接在Python代码中使用import 引入就可以使用了。

import pyqtgraph as pg

PyQtGraph自带一个丰富的示例模块,我们在命令行中输入:

python -m pyqtgraph.examples

就会自动打开示例手册的GUI程序:

119912d6651855a8ef4a4fd5a309ce16.png

我们可以选择运行一个示例进行运行:

b18de3f010a1c2d97f9cb886c0101aba.png

前面我们说了PyQtGraph与PyQt的结合度很高,下面我们来看看在PyQt中如何调用PyQtGraph绘制的图形

在GUI中集成pyqtgraph图形

在PyQtGraph中,有几种绘制图形的方法:

  • pyqtgraph.plot():创建一个新的绘图窗口来显示数据;
  • PlotWidget.plot():将一组新的数据添加到现有的绘图小部件;
  • PlotItem.plot():将一组新的数据添加到现有的绘图小部件;
  • GraphicsLayout.addPlot():添加一个新的图形到一个图形层中;

根据PyQtGraph这几种绘图方式,我们在PyQt中可以在窗口部件中显示图形,也可以在一个新的窗口的显示图形。

下面我们在窗口部件中显示茅台股票近半年来的K线图,作为在PyQt中集成显示PyQtGraph图形的例子。

首先,在我们之前创建的GUI的基础上,新增一个选项卡,在其中放置一个VerticalLayout层布局:

89d6aba4736ebc30e0da7212544cdf73.png

然后,按照惯例,将UI文件转换为Python文件,并新建一个Python文件引入。

d2250ed47c5b3e6eccafb3815248d90b.png

根据PyQtGraph的示例,我们新建一个绘制K线图的类CandlestickItem:

class CandlestickItem(pg.GraphicsObject):  def __init__(self, data):  pg.GraphicsObject.**init**(self)  self.data = data ## data must have fields: time, open, close, min, max  self.generatePicture() def generatePicture(self): self.picture = QtGui.QPicture() p = QtGui.QPainter(self.picture) p.setPen(pg.mkPen('w')) w = (self.data[1][0] - self.data[0][0]) / 3. for (t, open, close, min, max) in self.data: p.drawLine(QtCore.QPointF(t, min), QtCore.QPointF(t, max)) if open > close: p.setBrush(pg.mkBrush('g')) else: p.setBrush(pg.mkBrush('r')) p.drawRect(QtCore.QRectF(t-w, open, w*2, close-open)) p.end() def paint(self, p, *args): p.drawPicture(0, 0, self.picture) def boundingRect(self): return QtCore.QRectF(self.picture.boundingRect())

然后,我们创建一个函数chart(),用于通过tushare模块获取股票的历史数据,并将数据传入之前定义好的用于生成K线图的类:

def chart(): hist_data = ts.get_hist_data('600519',start='2017-05-01',end='2017-11-24') data_list = [] axis = [] for dates,row in hist_data.iterrows(): # 将时间转换为数字 date_time = datetime.datetime.strptime(dates,'%Y-%m-%d') t = date2num(date_time) # t = dict(enumerate(datetime)) open,high,close,low = row[:4] datas = (t,open,close,low,high) data_list.append(datas) axis.append(t) # print(axis) axis_dict = dict(enumerate(axis)) item = CandlestickItem(data_list) plt = pg.PlotWidget() # print(plt.getAxis('bottom')) plt.addItem(item) plt.showGrid(x=True,y=True) return plt

接着,在GUI程序的主类MainWindow()的init(self)中进行调用:

class MainWindow(object):  def __init__(self):  …………  self.ui.verticalLayout_3.addWidget(chart())  …………

最后我们运行代码:

d3026408d96ff2700f3bc97a80919615.gif

这样,PyQtGraph的图形作为一个窗口部件集成到了选项卡中。

PyQtGraph的用法和功能还有很多,大家可以在自带的示例库,官方文档(http://www.pyqtgraph.org/documentation/index.html),github中(https://github.com/pyqtgraph/pyqtgraph)获取到最新最全的使用方法和技巧。

http://www.jmfq.cn/news/5058703.html

相关文章:

  • 效果图网站名字/引擎优化是什么意思
  • 可以做网站挂在百度上吗/网络推广计划制定步骤
  • app网站制作公司/网站链接提交
  • 做电商需要哪些网站有哪些/淘宝代运营
  • 淘宝联盟网站推广怎么做/云搜索神器
  • 网站建设考试重点/中国免费广告网
  • 做平台的网站/营业推广的方式
  • 门户网站群建设/雅虎搜索引擎入口
  • 湘潭做网站 活动磐石网络/百度上怎么做推广
  • 网站热销榜怎么做/中国女排联赛排名
  • 做儿童方面的网站/上海网站搜索引擎优化
  • 北京网络职业技术学院官网/seo网站优化收藏
  • 临平网站建设/网络营销策略包括
  • 帮助做问卷调查的网站/免费推广seo
  • 端午节网页设计模板/衡阳seo优化
  • 哈尔滨政务性网站制作公司/百度指数怎样使用
  • b2c购物网站怎么做/东莞seo推广公司
  • 宁波品牌网站设计特点/搜索引擎优化结果
  • 慈溪网站制作哪家最好/seo项目优化案例分析文档
  • 网站qq客服怎么做/seo排名关键词点击
  • 网站开发有哪些方向/推广app有哪些
  • 完整的网站开发/百度扫一扫识别图片在线
  • wordpress 作品/seo建站技术
  • dw cs4怎么做网站/北京seo服务商
  • 任县网站建设设计/可以访问违规网站的浏览器
  • 重庆网站seo营销模板/鞋子软文推广300字
  • 有没有专门做橱窗的案例网站/app推广方式有哪些
  • 代码演示插件wordpress/360搜索优化
  • 怎样做网站关键词优化/谷歌seo 优化
  • 网站优化要多少钱/百度关键词竞价