我在画布上添加了一个matplotlib图形,以便在应用程序中将其与pyqt集成。我环顾四周,使用plt.add_subplot(111)
似乎是要走的路(?)但是我不能像在“普通”情节中那样在子情节中添加任何属性。
图形设置
figure1 = plt.figure()
canvas1 = FigureCanvas(figure1)
graphtoolbar1 = NavigationToolbar(canvas1, frameGraph1)
hboxlayout = qt.QVBoxLayout()
hboxlayout.addWidget(graphtoolbar1)
hboxlayout.addWidget(canvas1)
frameGraph1.setLayout(hboxlayout)
创建子区并添加数据
df = quandl.getData(startDate, endDate, company)
ax = figure1.add_subplot(111)
ax.hold(False)
ax.plot(df['Close'], 'b-')
ax.legend(loc=0)
ax.grid(True)
我想设置x和y标签,但如果我设置ax.xlabel("Test")
AttributeError: 'AxesSubplot' object has no attribute 'ylabel'
如果我不使用子情节的话这是可能的
plt.figure(figsize=(7, 4))
plt.plot(df['Close'], 'k-')
plt.grid(True)
plt.legend(loc=0)
plt.xlabel('value')
plt.ylabel('frequency')
plt.title('Histogram')
locs, labels = plt.xticks()
plt.setp(labels, rotation=25)
plt.show()
所以我想我的问题是,是否有可能进一步修改次要情节?或者,我是否可以在pyqt画布中绘制图形,而不使用子图,这样我就可以从更多的属性中受益?
2条答案
按热度按时间2wnc66cl1#
plt.subplot
返回一个子图对象,它是一种轴对象。它有两种添加轴标签的方法:set_xlabel
和set_ylabel
:您还可以调用
plt.xlabel
和plt.ylabel
(就像您之前所做的那样),并指定要应用标签的轴。因为只有一个轴,所以也可以省略
axes
kwarg,因为如果没有指定,标签将自动应用于当前轴。k4ymrczo2#
几乎所有的matplotlib属性都定义了一个
set()
方法。例如,Axes对象定义了一个set()
方法,可用于设置轴标签、刻度、标题等。在次要情节上Axis标签是Text对象(可以通过ax.yaxis.label
或ax.xaxis.label
访问),它们还定义了一个set()
方法来更改内容。同样的工作也可以使用
set_*
方法完成。