Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/293.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中整理x轴上使用秒数的图形_Python_Graph_Matplotlib - Fatal编程技术网

Python 是否可以在matplotlib中整理x轴上使用秒数的图形

Python 是否可以在matplotlib中整理x轴上使用秒数的图形,python,graph,matplotlib,Python,Graph,Matplotlib,我有一个带有日期时间的数据集,有时包含以秒为单位的差异 我将datetimes(在x轴上)垂直显示,希望文本不会相互重叠,但从外观上看,它们实际上是叠在一起的。我想这是因为我有以秒为单位的数据,并且日期可以在不同的日子内变化,所以x轴非常紧。另一个问题是,图形上的数据点也重叠,因为它们之间的距离很近 下面是一个示例集(已使用date2num()转换)。它以秒为单位,但跨越几天: dates = [734949.584699074, 734959.4604050926, 734959.488877

我有一个带有日期时间的数据集,有时包含以秒为单位的差异

我将datetimes(在x轴上)垂直显示,希望文本不会相互重叠,但从外观上看,它们实际上是叠在一起的。我想这是因为我有以秒为单位的数据,并且日期可以在不同的日子内变化,所以x轴非常紧。另一个问题是,图形上的数据点也重叠,因为它们之间的距离很近

下面是一个示例集(已使用
date2num()
转换)。它以秒为单位,但跨越几天:

dates = [734949.584699074, 734959.4604050926, 734959.4888773148, 734949.5844791667, 734959.037025463, 734959.0425810185, 734959.0522916666, 734959.4607060185, 734959.4891435185, 734949.5819444444, 734959.0348726852, 734959.0390393519, 734959.0432175926, 734959.0515393518, 734959.4864814815, 734949.5842476852, 734959.0367476852, 734959.038125, 734959.0423032407, 734959.052025463, 734959.4603819444, 734959.4895023148, 734949.5819791667, 734959.0348958333, 734959.0390740741, 734959.0432407408, 734959.0515856481, 734959.4579976852, 734959.487175926]

values =  [39, 68, 27, 57, 22, 33, 70, 19, 60, 53, 52, 33, 87, 63, 78, 34, 26, 42, 24, 97, 20, 1, 32, 60, 61, 48, 30, 48, 17]

dformat = mpl.dates.DateFormatter('%m-%d-%Y %H:%M:%S')
figure = plt.figure()
graph = figure.add_subplot(111)
graph.xaxis.set_major_formatter(dformat)
plt.xticks(rotation='vertical')
figure.subplots_adjust(bottom=.35)
graph.plot_date(dates,values)
graph.set_xticks(dates)
plt.show()
我有两个问题:

  • 是否有办法在x轴上创建间距,以便我可以清楚地看到文本和数据点?这将导致一个非常长的水平图,但我会将其保存到一个图像文件中

  • 与第一个问题相关:为了减少图表的水平长度,是否有方法压缩x轴上的记号,以便缩短没有数据的区域

    例如,如果我们有三个带值的日期:

     March 22 2013 23:11:04        55
    
     March 22 2013 23:11:10        70
    
     April 1 2013 10:43:56         5
    
    是否有可能压缩2013年3月22日23:11:10和4月1日1-:43:56之间的空间


你基本上是在要求一些不可能的事情,在保持x轴线性的同时,你不能同时看到一系列的天数和几秒钟的差异。如果你想试试这个,你可以这样做

这会让你的身材有1000英寸宽,2英寸高,但这样做相当笨拙


我认为你应该做的是在你的数据有重大突破的任何地方应用Dermen的link(),并将其中断。您将得到多个部分,每个部分都有几秒钟宽,这将为记号标签提供足够的空间以供阅读

这是你第二个问题的答案:你试过什么?如果我们有一些现有的代码可以使用,您将得到更好的答案。我已经更新了我的问题,以包含一个示例代码。为什么不将其作为三个单独的图来执行?我不确定如何将其拆分为“三个单独的图”。你能详细介绍一下吗?目前,我正试图将所有的点显示在一个图表上,有点像是在时间轴上对系统的概述。
fig.set_size_inches(1000, 2, forward=True)