gpt4 book ai didi

python - 如何在 QtCharts 中添加子图?

转载 作者:行者123 更新时间:2023-12-02 19:31:53 25 4
gpt4 key购买 nike

我需要创建两个图表(子图,同步)并设置尺寸如下:

  • 上图是输出区域的 75%
  • 下图是输出区域高度的 25%。

类似于这个草图。

enter image description here

一个图表很容易创建(代码如下)。但要添加第二个子图 - 它不起作用。我尝试通过 QVBoxLayout() 添加它,但失败了。

我找到了所需的示例,How to create Subplot using QCharts?但它不是用 Python 编写的(这在尝试转换为 Python 时会引起麻烦)。这里https://doc.qt.io/qt-5/qchart.html#chartType-prop也不存在,而且 Python 中也没有。

如何添加子图并指示尺寸(以像素或百分比为单位)?

from random import uniform
from PyQt5.QtWidgets import QApplication, QMainWindow
import sys
from PyQt5.QtChart import QChart, QChartView, QLineSeries



class Window(QMainWindow):
def __init__(self):
super().__init__()
self.setGeometry(100, 100, 680, 500)
self.create_linechart()
self.show()

def create_linechart(self):

series = QLineSeries(self)
for i in range(100):
series.append(i, uniform(0, 10))

chart = QChart()
chart.addSeries(series)
chart.createDefaultAxes()
chartview = QChartView(chart)
self.setCentralWidget(chartview)


App = QApplication(sys.argv)
window = Window()
sys.exit(App.exec_())

最佳答案

您必须创建2个QChartView,因为在代码中您只创建并将其设置为centralwidget,那么您必须使用QWidget作为容器并使用QVBoxLayout来添加它们,对于高度比,您必须设置拉伸(stretch)因子:

from random import uniform
import sys

from PyQt5.QtWidgets import QApplication, QMainWindow, QVBoxLayout, QWidget
from PyQt5.QtChart import QChart, QChartView, QLineSeries


class Window(QMainWindow):
def __init__(self):
super().__init__()
self.setGeometry(100, 100, 680, 500)
view1 = self.create_linechart()
view2 = self.create_linechart()

central_widget = QWidget()
self.setCentralWidget(central_widget)
lay = QVBoxLayout(central_widget)
lay.addWidget(view1, stretch=3)
lay.addWidget(view2, stretch=1)

def create_linechart(self):
series = QLineSeries()
for i in range(100):
series.append(i, uniform(0, 10))

chart = QChart()
chart.addSeries(series)
chart.createDefaultAxes()
chartview = QChartView(chart)
return chartview


if __name__ == "__main__":
App = QApplication(sys.argv)
window = Window()
window.show()
sys.exit(App.exec_())

enter image description here

关于python - 如何在 QtCharts 中添加子图?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61658294/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com