PyQt5_pyqtgraph例子_收益率分布直方图

目录

效果:

代码:

使用:


效果:

代码:

import sys
import pandas as pd
from PyQt5 import QtWidgets
from PyQt5.QtCore import Qt
from typing import Any,Dict
import pyqtgraph as pg
pg.setConfigOption('background', 'w')
pg.setConfigOption('foreground', 'k')

绘制分布直方图控件

class PyQtGraphWidget(QtWidgets.QWidget):
    def __init__(self):
        super().__init__()
        self.init_data()
        self.init_ui()

    def init_data(self):
        self.color_bar = (30, 144, 255)
        pass

    def init_ui(self):
        self.title_label = QtWidgets.QLabel('收益率分布图')
        self.title_label.setAlignment(Qt.AlignCenter)
        self.pw = pg.PlotWidget()
        self.pw.setMouseEnabled(x=True, y=False)
        # self.pw.enableAutoRange(x=False,y=True)
        self.pw.setAutoVisible(x=False, y=True)
        layout = QtWidgets.QVBoxLayout()
        layout.addWidget(self.title_label)
        layout.addWidget(self.pw)
        self.setLayout(layout)
        pass
    def set_data(self,data:Dict[str,Any]):
        title_str = data['title_str']
        x = data['x']
        x0 = data['x0']
        x1 = data['x1']
        y = data['y']

        self.title_label.setText(title_str)
        barItem = pg.BarGraphItem(x=x,height=y,x0=x0,x1=x1,brush=self.color_bar)
        self.pw.addItem(barItem)
        self.pw.enableAutoRange()
        pass

使用:

if __name__ == '__main__':
    app = QtWidgets.QApplication(sys.argv)

    file_path = r'E:/temp088/600004.csv'
    df_004 = pd.read_csv(file_path,encoding='utf-8')
    df_004['ret'] = df_004['closePrice'].pct_change()
    temp_dis = df_004['ret'].value_counts(bins=200)
    x_list = []
    x0_list = []
    x1_list = []
    y_list = []
    for index,value in temp_dis.items():
        i_left = index.left
        i_right = index.right
        x0_list.append(i_left)
        x1_list.append(i_right)
        x_list.append((i_left + i_right)/2)
        y_list.append(value)
        pass

    pre_data = {}
    pre_data['title_str'] = '600004收益率分布'
    pre_data['x'] = x_list
    pre_data['x0'] = x0_list
    pre_data['x1'] = x1_list
    pre_data['y'] = y_list
    temp_w = PyQtGraphWidget()
    temp_w.show()
    temp_w.set_data(pre_data)
    sys.exit(app.exec_())
    pass
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值