2012-08-04 90 views
3

PyQt4中的GUI一个饼图编辑: 我能得到它这样工作:我需要绘制使用MatPlotLib

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_() 

唯一的问题是它定位 请看一看图像下面, 它目前看起来像第一个图像,但我想它看起来像第二个图像 我photoshoped第二个图像,这就是为什么一些文字被砍掉 我需要更多的空间在两侧,以允许标签。

感谢

一些我不能怎么在这里上传图像是将图像 http://www.somans.com/Untitled-1.jpg

+1

这是非常嘈杂。什么是问题? – pelson 2012-08-04 18:16:16

+0

请检查这里的图像,我目前有什么是在第一个图像,我需要实现什么是第二个图像。这里是链接http://www.somans.com/Untitled-1.jpg – 2012-08-04 20:54:58

回答

4

链接听起来像你的问题是,“我怎样才能让饼图坐在我图的中间? ”。我会回答:

没有什么特别的事实,你正在使用QT4窗口系统来产生你的情节。我采用了matplotlib饼图示例,并修改了图形宽度以模拟您的需求。最后,重要的是,我设定纵横比为1:1,以保持饼图圆形:

from pylab import * 

# make a square figure and axes 
figure(1, figsize=(10, 3)) 
ax = axes([0.1, 0.1, 0.8, 0.8]) 

labels = 'Frogs', 'Hogs', 'Dogs', 'Logs' 
fracs = [15,30,45, 10] 

explode=(0, 0.05, 0, 0) 
pie(fracs, explode=explode, labels=labels, autopct='%1.1f%%', shadow=True) 
title('Raining Hogs and Dogs', bbox={'facecolor':'0.8', 'pad':5}) 

gca().set_aspect('1') 
show() 

enter image description here