So habe ich mit pyqtgraph gespielt und ich kam zu einem Problem, wo ich Strings als X-Achse Tick-Label (anstelle von Standard-Float) hinzufügen musste. Also habe ich mich umgesehen und gefunden Show string values on x-axis in pyqtgraphPyqtgraph Zeichenfolge in x Tick
Die Lösung Art von tut, was ich tun muss (die erste Lösung auf der Seite, die zweite wird Probleme verursachen, weil ich auf Python 3.5 bin). Also habe ich versucht die erste Lösung zu modifizieren, aber es hat nicht funktioniert.
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_()
Der Fehler Ich erhalte ist Typeerror: ‚dict_keys‘ Objekt unterstützt nicht die Indizierung auf Linie
curve = plot.plot(xdict.keys(),y)
Ich habe versucht, es in eine Liste drehen, indem sie es wie folgt:
curve = plot.plot(list(sdict.keys(),y))
aber das machte die Ausgabe hat ein kleines Problem
das Problem ist th Dort wird eine weitere Achse oben links im Diagramm hinzugefügt. Kann mir jemand sagen, was ich hier falsch mache?