首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Python PyQtGraph -如何使用setTicks?

Python PyQtGraph -如何使用setTicks?
EN

Stack Overflow用户
提问于 2022-02-11 14:02:35
回答 1查看 163关注 0票数 0

我只想在数据点的位置显示xticks (所以xticks是==波长)。我该怎么做?

这是我的代码:

代码语言:javascript
复制
from PyQt6.QtWidgets import QApplication
import pyqtgraph as pg

app = QApplication([])

wavelengths = [610, 680, 730, 760, 810, 860]
data = [239.23, 233.81, 187.27, 176.41, 172.35, 173.78]

pw = pg.plot(wavelengths, data, symbol="o")
pw.getPlotItem().getAxis('bottom').setTicks([wavelengths])

app.exec()

我尝试使用AxisItem.setTicks(),但是它导致了一个错误:

代码语言:javascript
复制
    for val, strn in level:
TypeError: cannot unpack non-iterable int object
Traceback (most recent call last):
  File "/home/jure/.local/share/virtualenvs/serial-plotting-gui-dWOiQ7Th/lib/python3.10/site-packages/pyqtgraph/graphicsItems/AxisItem.py", line 608, in paint
    specs = self.generateDrawSpecs(painter)
  File "/home/jure/.local/share/virtualenvs/serial-plotting-gui-dWOiQ7Th/lib/python3.10/site-packages/pyqtgraph/graphicsItems/AxisItem.py", line 936, in generateDrawSpecs

我也试过this SO answer,但对我不起作用

EN

Stack Overflow用户

回答已采纳

发布于 2022-02-11 18:28:56

它总是有点棘手的蜱在比例尺。它与轴上两个滴答之间的滴答间距一起工作。在此基础上,定义了MajorTick、MinorTicks等级别。对于setTicks,您必须指定级别列表(我们只有MajorTicks),而每个级别都必须指定(tick value, "tick string")列表。

因此,为了使示例工作,您必须使用这样的列表作为setTicks方法的参数。

以下是您修改的代码:

代码语言:javascript
复制
from PyQt6.QtWidgets import QApplication
import pyqtgraph as pg

app = QApplication([])

wavelengths = [610, 680, 730, 760, 810, 860]
data = [239.23, 233.81, 187.27, 176.41, 172.35, 173.78]

pw = pg.plot(wavelengths, data, symbol="o")

pw.getPlotItem().getAxis('bottom').setTicks([[(wavelength, str(wavelength)) for wavelength in wavelengths]])

app.exec()
票数 1
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71081359

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档