为啥我的ReportView没有显示出来

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了为啥我的ReportView没有显示出来相关的知识,希望对你有一定的参考价值。

参考技术A 没用过你说的报表工具,你说的应该就是格式混乱,我用的FineReport报表就不会出现你说的这种情况,有问题还可以去“FineReport爱好者论坛”求助,很多报表高手在。

为啥我的折线图没有显示在 GUI 上

【中文标题】为啥我的折线图没有显示在 GUI 上【英文标题】:Why isn't my line graph showing up on GUI为什么我的折线图没有显示在 GUI 上 【发布时间】:2018-04-18 22:49:18 【问题描述】:

这是一个在单击按钮时被调用的函数。它应该显示一个折线图,为什么它没有显示出来。

def plotk2(self):
#----------------------------------------------------------------Data
    temp=full_dataset[['country_txt','iyear','nkill']]
    text = self.k_count.currentText()
    temp = temp[temp['country_txt'].str.match(text)]
    temp2=temp.groupby(['iyear'])['nkill'].count()
    temp2=temp2.to_frame()
    temp2['iyear']=temp2.index
#----------------------------------------------------------------
    self.figure.clear()

    ax = self.figure.add_subplot(111)
    plt.plot( 'nkill', 'iyear', data=temp2)
    #ax.axis('off')


    plt.show()

    self.canvas.draw()

【问题讨论】:

【参考方案1】:

如果你想在PyQt 上绘图,你必须使用FigureCanvas,而不是matplotlib.pyplot,所以如果你使用plt.plot(),你将不会绘制任何东西。

在您的情况下,类似的示例是:

import sys
import pandas as pd

import matplotlib
matplotlib.use('Qt5Agg')
from PyQt5 import QtCore, QtWidgets
from matplotlib.backends.backend_qt5agg import FigureCanvasQTAgg as FigureCanvas
from matplotlib.figure import Figure

class Widget(QtWidgets.QWidget):
    def __init__(self, *args, **kwargs):
        QtWidgets.QWidget.__init__(self, *args, **kwargs)
        self.figure = Figure(figsize=(5, 4), dpi=100)
        self.canvas = FigureCanvas(self.figure)
        self.canvas.setSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Expanding)

        button = QtWidgets.QPushButton("random plot")
        button.clicked.connect(self.plot)

        lay = QtWidgets.QVBoxLayout(self)
        lay.addWidget(self.canvas)
        lay.addWidget(button)
        self.plot()

    def plot(self):
        self.figure.clear()
        ax = self.figure.add_subplot(111)
        d = 'nkill': [1, 2, 4, 5, 6], 'iyear': [3, 4, 5, 5, 5]
        df = pd.DataFrame(data=d)
        ax.plot('nkill', 'iyear', data=df)
        # ax.axis('off')
        self.canvas.draw()

if __name__ == '__main__':
    app = QtWidgets.QApplication(sys.argv)
    w = Widget()
    w.show()
    sys.exit(app.exec_())

【讨论】:

以上是关于为啥我的ReportView没有显示出来的主要内容,如果未能解决你的问题,请参考以下文章

为啥我的xbox360游戏的图片显示不出来?

为啥我的实际内存容量在系统属性里显示出来的不一样?

在文件夹中可以找到图片,为啥在图库中显示不出来? 我的手机是华为荣耀2

我的IE浏览器为啥有的网页下面已经提示完毕了,但是还啥也显示不出来

wpf中怎么为datagrid绑定一个list 我的代码如下,为啥显示出来的全是空行?。。。 似乎数据个数是对的…

为啥我的表没有被填充?