Python 3.x 显示不同范围数据的最佳方式

Python 3.x 显示不同范围数据的最佳方式,python-3.x,matplotlib,Python 3.x,Matplotlib,我有一个应用程序,我从FPGA中提取数据并向工程师显示。很好的应用。。。直到您开始显示范围极为不同的数据 比如说:一个信号在+4000左右扰动,另一个在零附近扰动(两者都有小峰值) 目前唯一真正的解决办法是“导出到csv”,然后在Excel中查看,但我想改进应用程序,这样就不需要了 选项1是一个更动态的指针,它将为您提供当前x的所有可见绘图的读数 备选案文2。多个Y轴。这就是它变得有点。。。与UI区域相关的紧密性 import matplotlib.pyplot as plt from mpl_

我有一个应用程序,我从FPGA中提取数据并向工程师显示。很好的应用。。。直到您开始显示范围极为不同的数据

比如说:一个信号在+4000左右扰动,另一个在零附近扰动(两者都有小峰值)

目前唯一真正的解决办法是“导出到csv”,然后在Excel中查看,但我想改进应用程序,这样就不需要了

选项1是一个更动态的指针,它将为您提供当前x的所有可见绘图的读数

备选案文2。多个Y轴。这就是它变得有点。。。与UI区域相关的紧密性

import matplotlib.pyplot as plt
from mpl_toolkits.axes_grid1 import host_subplot
import mpl_toolkits.axisartist as AA
import numpy as np

t = np.arange(0,1,0.00001)
data = [5000*np.sin(t*2*np.pi*10),
10*np.sin(t*2*np.pi*20),
20*np.sin(t*2*np.pi*30),
np.sin(t*2*np.pi*40)+5000,
np.sin(t*2*np.pi*50)-5000,
np.sin(t*2*np.pi*60),
np.sin(t*2*np.pi*70),
]

fig = plt.figure()
host = host_subplot(111, axes_class=AA.Axes)

axis_list = [None]*7
for i in range(len(axis_list)):
    axis_list[i] = host.twinx()
    new_axis = axis_list[i].get_grid_helper().new_fixed_axis
    axis_list[i].axis['right'] = new_axis(loc='right',
                                                axes=axis_list[i],
                                                offset=(60*i,0))
    axis_list[i].axis['right'].toggle(all=True)
    axis_list[i].plot(t,data[i])

plt.show()

for i in data:
    plt.plot(t,i)
plt.show()
此代码段不包含任何数字调整,以确保所有7个y轴都可见,但忽略这一点,您可以看到它相当大


关于multi-Y或显示不超过7个数据集的更好解决方案,有什么建议吗?

我不能理解代码,但您是否尝试过对输出的Y值应用对数比例(
newY=log(oldY)
)?或者更严格的是,函数
newY=1-1/(oldY+1)
将设置[0,1]范围内的所有Y值,然后乘以任何常数以缩放到UI大小。该代码有三个部分1)虚拟数据生成2)带多Y的绘图[缺少自动调整大小的图区域]3)像我目前所做的那样绘制数据。能够比较第4和第5个数据是促使工程师向我提出如何更好地表示问题的原因,但我始终坚持最佳显示。您是否考虑过一个接一个地绘制数据集,但每个数据集都有不同的颜色和高透明度?如。