编辑后: 我能够这样让它工作:
import matplotlib
from matplotlib.backends.backend_qt4agg import FigureCanvasQTAgg as FigureCanvas
from matplotlib.figure import Figure
import matplotlib.pyplot as plt
from PyQt4 import QtCore, QtGui
from ui_ageingReport import Ui_report_ageingDisplay
class AgeingChart():
def __init__(self, label, frac, titl):
self.age_dialog=QtGui.QDialog()
self.age_ui = Ui_report_ageingDisplay()
self.age_ui.setupUi(self.age_dialog)
self.dpi = 120
self.fig = plt.figure(1, figsize=(4,4))
self.fig.add_subplot(111)
explode=(0, 0.05, 0, 0, 0)
labels = label
fracs = frac
plt.pie(fracs, explode=explode, labels=labels, autopct='%1.1f%%', shadow=True)
plt.title(titl, bbox={'facecolor':'0.8', 'pad':10})
self.canvas = FigureCanvas(self.fig)
self.canvas.setParent(self.age_ui.chart)
self.age_dialog.exec_()
唯一的问题是定位它。请看下面的图片,它目前看起来像第一张图片,但我想让它看起来像第二张图片。我用Photoshop修过第二张图片,所以有些文字被裁剪了。我需要更多的空间来容纳标签。
谢谢。
某种方式我无法在这里上传图片,这里是图片链接:http://www.somans.com/Untitled-1.jpg