gpt4 book ai didi

python - 在 QCharts 上绘制时 QScatterSeries 点不可见

转载 作者:行者123 更新时间:2023-12-01 07:08:02 25 4
gpt4 key购买 nike

我正在尝试使用 QScatterSeries 绘制 numpy 数组,但是仅更新轴并且不显示点。我不确定为什么它不起作用。

  • projectionwindow.py
from PySide2.QtCore import Qt
from PySide2.QtWidgets import QWidget, QHBoxLayout
from PySide2.QtGui import QColor, QPen
from PySide2.QtCharts import QtCharts


class ProjectionWindow(QWidget):
"""
TODO
"""
def __init__(self, parent=None) -> 'None':
super().__init__()
self.setWindowTitle('Projection')
self.resize(800, 800)
self.chart = QtCharts.QChart()
self.chart_view = QtCharts.QChartView(self.chart)
self.layout = QHBoxLayout(self)
self.layout.addWidget(self.chart_view)
self.setLayout(self.layout)
self.show()


def loadCharts(self, data: 'ndarray') -> 'None':
points = QtCharts.QScatterSeries()
points.setMarkerSize(2.0)
for i in range(data.shape[0]):
points.append(data[i, 0], data[i, 1])
self.chart.addSeries(points)
self.chart.createDefaultAxes()
self.chart.show()

这是我当前调用时的结果

  • main.py
import sys
import numpy as np
from PySide2.QtWidgets import QApplication
from ui.projectionwindow import ProjectionWindow

if __name__ == "__main__":

app = QApplication(sys.argv)
data = np.array([[1,2],
[3,4]])
window = ProjectionWindow(app)
window.loadCharts(data)

sys.exit(app.exec_())

得到的结果: result

最佳答案

您有 2 个错误:

  • 标记尺寸非常小,肉眼无法区分。
  • 第一次建立系列时,QChart 采用最小矩形,因此在您的情况下它位于角落,因此解决方案是考虑足够的边距来更改轴的最小值和最大值。<
def loadCharts(self, data: "ndarray") -> "None":
points = QtCharts.QScatterSeries()
<b>points.setMarkerSize(20)</b>
for i in range(data.shape[0]):
points.append(data[i, 0], data[i, 1])

self.chart.addSeries(points)
self.chart.createDefaultAxes()

<b>m_x, M_x = min(data[:, 0]), max(data[:, 0])
m_y, M_y = min(data[:, 1]), max(data[:, 1])

ax = self.chart.axes(Qt.Horizontal, points)[0]
ax.setMin(m_x - 1)
ax.setMax(M_x + 1)

ay = self.chart.axes(Qt.Vertical, points)[0]
ay.setMin(m_y - 1)
ay.setMax(M_y + 1)</b>

输出:

enter image description here

关于python - 在 QCharts 上绘制时 QScatterSeries 点不可见,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58348826/

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