PyQt5嵌入matplotlib绘图,更改诸如x记号之类的属性



我正试图在PyQt5应用程序中制作一个简单的图,但我遇到了一些样式问题,这很可能是由于我初始化类/轴的方式造成的。

这是相关代码:

# Canvas
self.canvas = QWidget(self)
self.canvas.resize(820, 500)
self.canvas.move(-10, 200)
self.figure = plt.figure()
layout = QVBoxLayout(self.canvas)
self.static_canvas = FigureCanvas(self.figure)
layout.addWidget(self.static_canvas)
self.static_axis = self.static_canvas.figure.subplots()
self.static_axis.set_title('a sine wave')
self.canvas.hide()
def generate_graph(self):
self.static_axis.clear()
self.static_axis.plot(self.data_dict[self.graph_subject])
self.static_canvas.draw()
self.canvas.show()

有什么想法可以切换它,这样我就可以选择添加自定义的x记号和轴标签了吗?试用版self.static_axis.set_title('a sine wave')没有任何作用,没有任何错误或影响。

它想做的是有这样的选择,例如:

import numpy as np
import matplotlib.pyplot as plt
x1 = np.linspace(0.0, 5.0)
y1 = np.cos(2 * np.pi * x1) * np.exp(-x1)
plt.subplot()
plt.plot(x1, y1, '.-')
plt.title('Test plot')
plt.ylabel('Damped oscillation')
plt.xticks(np.arange(0, 6, step=2.5), ["start", "half", "end"])
plt.show()

在这篇SO文章中找到了答案,需要在plot((之后调用tick和labels,新的工作方法调用:

def generate_graph(self):
self.static_axis.clear()
self.static_axis.plot(self.data_dict[self.graph_subject])
self.static_axis.set_xlabel('my xdata')
self.static_axis.set_ylabel('my xdata')
self.static_axis.set_title('a sine wave')
self.static_canvas.draw()
self.canvas.show()

最新更新