Pyqtgraph字符串在x刻度线

时间:2016-08-23 23:20:59

标签: python-3.5 pyqtgraph

所以我一直在玩pyqtgraph,我遇到了一个问题,我需要添加字符串作为x轴刻度标签(而不是默认的浮点数)。所以我环顾四周找到了Show string values on x-axis in 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' object不支持在线索引

curve = plot.plot(xdict.keys(),y)

我尝试将其转换为列表,方法如下:

curve = plot.plot(list(sdict.keys(),y))

但是这使得输出有一个小问题plot window with problem

问题是在图的左上角添加了另一个轴。有人能告诉我这里我做错了什么吗?

1 个答案:

答案 0 :(得分:0)

嗯,我不确定我是否可以回答我自己的问题,所以我查了一下,发现https://stackoverflow.com/help/self-answer。所以这就是答案。

转到pyqtgraph google group https://groups.google.com/forum/#!searchin/pyqtgraph/string|sort:relevance/pyqtgraph/pSIn0xNGodA/79pR3dUBLAAJ并查找Upol Ryskulova提出的问题。他问的是同样的问题。对该评论的回复证实它是pyqtgraph中的一个错误。它已被修复,但修复尚未传播到我的anaconda发行版。所以我需要做的是等待一段时间,这个bug就会消失。该修复也在小组中讨论,他的代码没有任何问题。