Итак, я играл с pyqtgraph и столкнулся с проблемой, когда мне нужно было добавить строки в качестве метки оси X (вместо поплавка по умолчанию). Итак, я осмотрелся и нашел Показать строковые значения по оси x в pyqtgraph< /а>
Решение как бы делает то, что мне нужно (первое решение на странице, второе вызовет проблемы, потому что я на python 3.5). Поэтому я попытался изменить первое решение, но это не сработало.
from PyQt4 import QtCore
import pyqtgraph as pg
x = ['a', 'b', 'c', 'd', 'e', 'f']
y = [1, 2, 3, 4, 5, 6]
xdict = dict(enumerate(x))
win = pg.GraphicsWindow()
stringaxis = pg.AxisItem(orientation='bottom')
stringaxis.setTicks([xdict.items()])
plot = win.addPlot(axisItems={'bottom': stringaxis})
curve = plot.plot(xdict.keys(),y)
if __name__ == '__main__':
import sys
if sys.flags.interactive != 1 or not hasattr(QtCore, 'PYQT_VERSION'):
pg.QtGui.QApplication.exec_()
Ошибка, которую я получаю, это TypeError: объект 'dict_keys' не поддерживает индексацию в строке
curve = plot.plot(xdict.keys(),y)
Я попытался превратить его в список, сделав это следующим образом:
curve = plot.plot(list(sdict.keys(),y))
но это привело к тому, что на выходе возникла небольшая проблема
Проблема в том, что в левом верхнем углу графика добавлена еще одна ось. Может кто-нибудь сказать мне, что я делаю неправильно здесь?