Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/301.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 对matplotlib中的刻度使用不同的数据集_Python_Numpy_Matplotlib - Fatal编程技术网

Python 对matplotlib中的刻度使用不同的数据集

Python 对matplotlib中的刻度使用不同的数据集,python,numpy,matplotlib,Python,Numpy,Matplotlib,我有一个关于Python中matplotblib的问题。我正在使用一个数据集,它有30个会话。在每个会话中有0到5次运行。我已经创建了一个绘图,它显示了运行期间每个运行的值。因此,运行从0到200。但是,我需要在新运行开始时重置刻度。所以我要的不是0-200,而是0,1,2,3…0,1,2…0,1,2,3,4,5。然而,目前的图表是不应该改变的。你知道这怎么可能吗 守则: for ses in range(len(all_runs)): if len(all_runs[ses])

我有一个关于Python中matplotblib的问题。我正在使用一个数据集,它有30个会话。在每个会话中有0到5次运行。我已经创建了一个绘图,它显示了运行期间每个运行的值。因此,运行从0到200。但是,我需要在新运行开始时重置刻度。所以我要的不是0-200,而是0,1,2,3…0,1,2…0,1,2,3,4,5。然而,目前的图表是不应该改变的。你知道这怎么可能吗

守则:

for ses in range(len(all_runs)):
        if len(all_runs[ses]) > 0:
            plt.plot(xval[ses],all_runs[ses],'.-',color='tab:blue')



您可以将
labels
参数传递给
plt.xticks()
,指定重复的记号标签,而无需更改打印的数据。例如:

导入matplotlib.pyplot作为plt
n=5#每次运行的滴答数
r=3#运行次数
#样地
plt.绘图(列表(范围(n*r)))
plt.xticks(列表(范围(n*r)))
#设置重复的记号标签
ticks=list(plt.xticks()[0])
plt.xticks(滴答声,标签=滴答声[:n]*r);

如果我正确理解了这个问题,这就是它的工作原理。或者,小刻度可以指示会话

导入matplotlib.pyplot作为plt
将numpy作为np导入
xval=[np.数组([0,1,2,3,4]),np.数组([5,6,7,8,9,10]),np.数组([11,12,13,14,15,16,17])]
所有_运行=[np.random.randint(1,10,len(xv))表示xval中的xv]
总长度=总和([xval中xv的长度(xv)])
对于范围内的ses(len(所有_运行)):
如果len(所有_运行[ses])>0:
plt.plot(xval[ses],所有运行[ses],'.-',color='tab:blue')
#如果ses>0:
#plt.axvline(xval[ses][0]-0.5,ls=':',lw=1,color='purple')
plt.xticks(范围(总长度),[i代表xv,xval代表i代表xv,范围(长度(xv))]
ax=plt.gca()
ax.set_xticks(如果len(xv)>0,xval中xv的[xv[0]+0.1],次要=真)
ax.set_xticklabels([f'session{i}'表示枚举(xval)中的i,xv,如果len(xv)>0],则minor=True)
ax.勾选参数(轴='x',其中='minor',长度=0,焊盘=18)
对于ax.xaxis.get_minor_ticks()中的勾号:
勾选标签1.设置水平对齐(“左”)
plt.show()

嗨,Lea,你能发布一个你迄今为止尝试过的代码样本吗?不幸的是,代码包含大量数据,而且由于我处理的是机密患者数据,这实际上是不可能的。要创建一个玩具数据,并且只创建重现问题所需的部分代码,将是最有价值的,而且代码和数据不会保密。如果没有一些具体的数据和代码,就很难很好地理解这个问题。您的数据是如何组织的?你说的0到5分是什么意思?有些会话运行次数为0,有些会话运行次数更多?您的示例以“0,1,3,4,5”结尾,“2”是否故意遗漏?因此ses是会话的缩写,RU在所有_运行的列表中。我希望它现在更有意义!XVAL的一个例子:[数组([0, 1, 2,3, 4 ]),数组([5, 6, 7,8, 9, 10 ]),数组([11, 12, 13,14, 15, 16,17 ]),如果这回答了你的问题,你可以考虑答案。