Matplotlib - plot_surface : get the x,y,z values written in the bottom right corner

前端 未结 2 801
故里飘歌
故里飘歌 2021-01-06 13:34

I am a quite new user of matplotlib. When plotting a surface (3D) with matplotlib and plot_surface, a window appears with the graph. In that windows, on the bottom right cor

相关标签:
2条回答
  • 2021-01-06 13:45

    I tried @Thilo's answer and received only a single float. Using Python 3.8 and Matplotlib version 3.2.1.

    Modified his function to this

    def getxyz(event):
        s = ax.format_coord(event.xdata, event.ydata)
        out = [float(x.split('=')[1].strip()) for x in s.split(',')]
        print(out)
        return out
    

    Many thanks, because without that answer I would never knew something like format_coord exist.

    0 讨论(0)
  • 2021-01-06 13:55

    With ax.format_coord(mouseevent.xdata,mouseevent.ydata) you get the x, y, z values in a string ('x=0.222, y=0.452, z=0.826') from which you can extract the values.

    For example for y-coordinate:

    def gety(x,y):
        s = ax.format_coord(x,y)
        out = ""
        for i in range(s.find('y')+2,s.find('z')-2):
            out = out+s[i]
        return float(out)
    
    0 讨论(0)
提交回复
热议问题