我正在向画布添加一个matplotlib图形,以便我可以在我的应用程序中将它与pyqt集成.我在四处寻找并使用plt.add_subplot(111)似乎是要走的路(?)但我无法在子画面中添加任何属性,因为我可能会使用"普通"情节
图设置
self.figure1 = plt.figure()
self.canvas1 = FigureCanvas(self.figure1)
self.graphtoolbar1 = NavigationToolbar(self.canvas1, frameGraph1)
hboxlayout = qt.QVBoxLayout()
hboxlayout.addWidget(self.graphtoolbar1)
hboxlayout.addWidget(self.canvas1)
frameGraph1.setLayout(hboxlayout)
Run Code Online (Sandbox Code Playgroud)
创建子图并添加数据
df = self.quandl.getData(startDate, endDate, company)
ax = self.figure1.add_subplot(111)
ax.hold(False)
ax.plot(df['Close'], 'b-')
ax.legend(loc=0)
ax.grid(True)
Run Code Online (Sandbox Code Playgroud)
我想设置x和y标签,但是如果我这样做的话 ax.xlabel("Test")
AttributeError: 'AxesSubplot' object has no attribute 'ylabel'
Run Code Online (Sandbox Code Playgroud)
如果我不使用子图,我可以这样做
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()
Run Code Online (Sandbox Code Playgroud)
所以我想我的问题是,是不是可以进一步修改子图?或者我可以在pyqt画布中绘制图形,而不使用子图,这样我可以从我的图中获得更多属性的好处.
我正在尝试为许多国家做一个条形图,我希望名字显示在条形图下方有点旋转.问题是标签之间的空间是不规则的.

这是相关的代码:
plt.bar(i, bar_height, align='center', label=country ,color=cm.jet(1.*counter/float( len(play_list))))
xticks_pos = scipy.arange( len( country_list)) +1
plt.xticks(xticks_pos ,country_list, rotation=45 )
Run Code Online (Sandbox Code Playgroud)
有谁知道解决方案?
谢谢!您的帮助.
基督教