用pyqt5画柱张图
时间: 2024-01-25 20:12:23 浏览: 86
以下是使用PyQt5绘制柱状图的示例代码:
```python
import sys
from PyQt5.QtWidgets import QApplication, QMainWindow, QSizePolicy, QWidget
from PyQt5.QtGui import QPainter
from PyQt5.QtCore import Qt
class BarChart(QWidget):
def __init__(self, data):
super().__init__()
self.data = data
def paintEvent(self, event):
painter = QPainter(self)
painter.setRenderHint(QPainter.Antialiasing)
bar_width = self.width() / len(self.data)
max_value = max(self.data)
for i, value in enumerate(self.data):
bar_height = (value / max_value) * self.height()
bar_x = i * bar_width
bar_y = self.height() - bar_height
painter.setBrush(Qt.blue)
painter.drawRect(bar_x, bar_y, bar_width, bar_height)
def sizeHint(self):
return QSize(400, 300)
class MainWindow(QMainWindow):
def __init__(self):
super().__init__()
data = [10, 30, 50, 20, 40] # 柱状图数据
self.setWindowTitle("Bar Chart")
self.setCentralWidget(BarChart(data))
if __name__ == "__main__":
app = QApplication(sys.argv)
window = MainWindow()
window.show()
sys.exit(app.exec_())
```
这段代码创建了一个自定义的QWidget子类BarChart,用于绘制柱状图。在paintEvent方法中,使用QPainter绘制每个柱子。然后,在MainWindow中创建一个BarChart实例,并将其设置为主窗口的中央部件。
运行这段代码,将会显示一个带有柱状图的窗口。
阅读全文