Форум программистов, компьютерный форум, киберфорум
Python: GUI, графика
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
0 / 0 / 1
Регистрация: 25.02.2016
Сообщений: 134
PyQt5

Как отобразить строковые данные вместо индексов по оси X?

11.06.2020, 22:35. Показов 550. Ответов 0

Студворк — интернет-сервис помощи студентам
Рисуется линия по оси х индексы 1, 2, 3 .... и т.д.
Вместо них хочу отобразить данные datetime(date), которые преобразовал в string(qt).
Файл с данными находится здесь https://drive.google.com/file/... uyMSN/view

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
from PyQt5 import QtCore, QtGui, QtWidgets, QtChart
from PyQt5.QtCore import Qt
from PyQt5.QtChart import *
import math
import numpy as np
import pandas as pd
 
df = pd.read_csv('file.txt',
                 index_col='DATE',
                 parse_dates=True,
                 infer_datetime_format=True)
 
date = df.iloc[:, 0].index.date
z = df.iloc[:, 3].values
x = len(z)
x_ = x - 1
 
qt = [None] * x
for i in range(0, x):
   qt[i] = (date[i].strftime("%Y/%m/%d"))
 
class MainWindow(QtWidgets.QMainWindow):
    def __init__(self, parent=None):
        super().__init__(parent)
 
        self.step = 30
        self._chart_view = QtChart.QChartView()
        self.scrollbar = QtWidgets.QScrollBar(
            QtCore.Qt.Horizontal,
            sliderMoved=self.onAxisSliderMoved,
            pageStep=self.step,
        )
 
        self.scrollbar.setRange(0, x_)
 
        central_widget = QtWidgets.QWidget()
        self.setCentralWidget(central_widget)
 
        lay = QtWidgets.QVBoxLayout(central_widget)
        for w in (self._chart_view, self.scrollbar):
            lay.addWidget(w)
 
        self._chart = QtChart.QChart()
        self._line_serie = QtChart.QLineSeries()
 
        for i in range(0, len(z)):
            c_ = z[i]
            self._line_serie.append(QtCore.QPointF(i, c_))
 
        min_x, max_x = 0, x_
        self._chart.addSeries(self._line_serie)
 
        axisX = QValueAxis()
        axisX.setTickCount(5)
        #axisX.setLabelFormat("%d")
        self._chart.addAxis(axisX, Qt.AlignBottom)
        self._line_serie.attachAxis(axisX)
 
        axisY = QValueAxis()
        #axisY.setLabelFormat("%f")
        self._chart.addAxis(axisY, Qt.AlignLeft)
        self._line_serie.attachAxis(axisY)
 
        #self._chart.axisX(self._line_serie).setVisible(False)
        self._chart.legend().hide()
        self._chart_view.setChart(self._chart)
        self.lims = np.array([min_x, max_x])
        self.onAxisSliderMoved(self.scrollbar.value())
        self.adjust_axes(1, 31)
 
    def adjust_axes(self, value_min, value_max):
        if value_min > 0 and value_max > 0 and value_max <= x_ and value_max > value_min:
            self._chart.axisX(self._line_serie).setRange(value_min, value_max)
 
    @QtCore.pyqtSlot(int)
    def onAxisSliderMoved(self, value):
        value2 = value + self.step
        value1 = value
        if value2 >= x_:
            value2 = x_
            value1 = value2 - self.step
        self.adjust_axes(math.floor(value1), math.ceil(value2))
 
 
if __name__ == "__main__":
    import sys
 
    app = QtWidgets.QApplication(sys.argv)
    w = MainWindow()
    w.show()
    sys.exit(app.exec_())
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
11.06.2020, 22:35
Ответы с готовыми решениями:

Как в DBGrid не используя БД отобразить строковые значения?
Как в DBGrid отобразить значение не используя БД? Весь день бьюсь над этой задачай. Программа считывает данные из реестра, в которых...

Строковые данные..... как реализовать
День добрый, помогите доделать небольшой запросик. Есть таблица в которой хранятся события и пользователи совершившие это событие плюс...

Как вместо прямой отобразить дугу(кривую)
Всем привет ! В общем проблема заключается в том, что вместо дуги рисуется линия(прямая). P.S - программа должна показывать траекторию...

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
11.06.2020, 22:35
Помогаю со студенческими работами здесь

Как сравнить друг с другом два массива, содержащие строковые данные
Привет, У меня возникла проблема. У меня есть два массива стрингов Var_read и Var_write. К обоим массивам есть один лист с числами:...

Как отобразить название вместо чисел в таблице DBGrid
Как в гриде отобразить название? т.к. оно взято из другой таблице, там отображается только код этого названия

Как отобразить в списке справочника значки вместо стандартных
Имею форму списка справочника. Есть понятный механизм вывода картинки в колонке. А вот хочу вместо стандартных пиктограммы Группы и...

Как отобразить вместо айдишников значения из связаных с ней таблиц
У меня есть таблица связанная ключами с другими таблицами, и содержит значения ключей из других таблиц. Как мне отобразить(создать...

Встроенные строковые константы вместо Chr$
здравствуйте, прочёл на просторах инета Используйте встроенные строковые константы вместо Chr$(). Hапример, используйте: vbTab...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Новые блоги и статьи
Видеокарта простаивает ночами? Вот 4 проекта, которые загрузят её наукой
Programma_Boinc 10.04.2026
Видеокарта простаивает ночами? Вот 4 проекта, которые загрузят её наукой Если на Windows стоит дискретная NVIDIA или AMD — можно отдать её вычислительную мощность реальным исследованиям. . . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20% kYBz3eJf3jQ
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
Горе от ума
kumehtar 07.04.2026
Эта мне ментальная установка, что вот прямо сейчас, мол, мне для полного счастья не хватает (нужное вписать), и когда я этого достигну - тогда и полный кайф. Одна из самых сильных ловушек на пути. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru