Как удалить ось скаттера, после его удаления
Создаю кнопкой скаттер(точки на графике), потом другой кнопкой удаляю скаттер. Скаттер удаляется а вот оси остаются. Пробовал chart1.removeAxis(delete), происходит закрытие графика. Вот здесь на гифке видно, что серия удаляется а ось нет анимация
from PyQt5 import QtWidgets, QtChart
from PyQt5.QtCore import Qt
from PyQt5.QtChart import *
data = ((0, 7380, 7520, 7380, 7510, 7324),
(1, 7520, 7580, 7410, 7440, 7372),
(2, 7440, 7650, 7310, 7520, 7434),
(3, 7450, 7640, 7450, 7550, 7480),
(4, 7510, 7590, 7460, 7490, 7502),
(5, 7500, 7590, 7480, 7560, 7512),
(6, 7560, 7830, 7540, 7800, 7584))
mas = [7380, 7520, 7440, 7450, 7510, 7500, 7560]
x = len(mas)
class MainWindow(QtWidgets.QMainWindow):
def __init__(self, parent=None):
super().__init__(parent)
central_widget = QtWidgets.QWidget()
self.setCentralWidget(central_widget)
self.open_btn = QtWidgets.QPushButton("Open")
self.open_btn.clicked.connect(self.add_chartview)
self.close_btn = QtWidgets.QPushButton("Close")
self.close_btn.clicked.connect(self.remove_chartview)
hbox = QtWidgets.QHBoxLayout()
hbox.addWidget(self.open_btn)
hbox.addWidget(self.close_btn)
self.series = QCandlestickSeries()
tm = []
for num, o, h, l, c, m in data:
self.series.append(QCandlestickSet(o, h, l, c))
tm.append(str(num))
self.chart = QChart()
self.chart.addSeries(self.series)
self.chart.createDefaultAxes()
self.chart.legend().hide()
self.chart_view = QChartView(self.chart)
self.chart.axisX(self.series).setCategories(tm)
self.lay = QtWidgets.QVBoxLayout(central_widget)
self.lay.insertLayout(0, hbox)
self.lay.addWidget(self.chart_view)
self.resize(640, 480)
def add_chartview(self):
self.scatter = QtChart.QScatterSeries()
self.item = self.lay.itemAt(1)
widget = self.item.widget()
chart = widget.chart()
print(len(chart.series()))
self.scatter.append(float(3), mas[3])
self.scatter.append(float(5), mas[5])
chart.addSeries(self.scatter)
widget.setChart(chart)
axisX = QValueAxis()
chart.addAxis(axisX, Qt.AlignBottom)
self.scatter.attachAxis(axisX)
axisY = QValueAxis()
chart.addAxis(axisY, Qt.AlignLeft)
self.scatter.attachAxis(axisY)
chart.axisX(self.scatter).setRange(0, 6)
chart.update()
def remove_chartview(self):
self.item = self.lay.itemAt(1)
widget = self.item.widget()
chart1 = widget.chart()
r = chart1.series()
print(len(r))
if len(r) > 1:
delete = r[1]
chart1.removeSeries(delete)
if __name__ == "__main__":
import sys
app = QtWidgets.QApplication(sys.argv)
w = MainWindow()
w.show()
sys.exit(app.exec_())