Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/294.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 试图使用Tkinter中Matplotlib的MouseeEvent中的日期时间_Python_Datetime_Matplotlib_Tkinter_Mouseevent - Fatal编程技术网

Python 试图使用Tkinter中Matplotlib的MouseeEvent中的日期时间

Python 试图使用Tkinter中Matplotlib的MouseeEvent中的日期时间,python,datetime,matplotlib,tkinter,mouseevent,Python,Datetime,Matplotlib,Tkinter,Mouseevent,我有一个数据绘图(使用matplotlib和Tkinter)并创建了一个函数,该函数响应用户单击绘图上的一个点。我让程序返回正确的y值(因为它只是一个浮点类型)。但是,我的x轴有datetime类型数据,当我要求它打印x值时,它会打印numpy.float64类型。我希望使用用户选择的datetime值,但我需要先访问它 返回的x值的一个示例:735764.731698 下面是处理onpick事件的函数 import matplotlib.pyplot as plt from Tkinter i

我有一个数据绘图(使用
matplotlib
Tkinter
)并创建了一个函数,该函数响应用户单击绘图上的一个点。我让程序返回正确的y值(因为它只是一个浮点类型)。但是,我的x轴有
datetime
类型数据,当我要求它打印x值时,它会打印
numpy.float64
类型。我希望使用用户选择的datetime值,但我需要先访问它

返回的x值的一个示例:735764.731698

下面是处理onpick事件的函数

import matplotlib.pyplot as plt
from Tkinter import *
from PIL import ImageTk, Image
from matplotlib.backends.backend_tkagg import FigureCanvasTkAgg
from matplotlib.figure import Figure
import numpy as np
from images_to_list import images_to_list
from tkFileDialog import askopenfilename, askdirectory
import matplotlib.dates as mdates

def onpick(self,event):    

      im=Image.open('C:\Carbonite\EL_36604.02_231694\EL_36604.02_231694_2015-06-15 10.39.57.jpeg')
        im.show()

        x = event.mouseevent.xdata
        y = event.mouseevent.ydata
        x1 = event.mouseevent.x
        y1 = event.mouseevent.y

        dataind = event.ind[0]

        print type(x),x,y,x1,y1, len(event.ind)      

        return True


#Action Creating the UI and running the program
app = App(extra)
app.canvas.mpl_connect('pick_event', app.onpick)
extra.mainloop()
以下是选择点时的输出示例:

%run "C:\Carbonite\Main_interface_file.py"
<type 'numpy.float64'> 735764.732134 1.93689320388 499 242.0 1
%运行“C:\Carbonite\Main\u interface\u file.py”
735764.732134 1.93689320388 499 242.0 1

内部mpl转换日期->浮动(它知道如何打印)并转换回日期时间以标记轴。这里需要的功能是

还要注意,mpl内部使用的浮动表示法是0001-01-01之后的浮动天数

import matplotlib.dates as mdate
dt = mdate.num2date(num)
In [222]:  mdate.num2date(735764.732134).isoformat()
Out[222]: '2015-06-15T17:34:16.377604+00:00'