

pythonでこのような散布図を描いたのですが今後データ数が増えていきしっかり反映されているか確認するためグラフ上のにあるプロット数を表示する方法を教えていただきたいです．

[code]

    import pandas as pd
    import numpy as np
    import matplotlib.pyplot as plt
    
    x=np.array([0, 6, 11 , 20, 30, 40]) 
    y=np.array([92, 105, 114 , 125, 148, 141]) 
    
    #for plot
    xnew =np.linspace(0, 40, num=50)
    plt.plot(x, y, 'o')
    
[/code]


CC BY-SA 4.0
2020-11-25T08:32:43.003
72197
2022-05-11T06:06:20.620
42568
question
python
グラフ上のプロット数


散布図の場合、x軸の値の個数(質問のコードのxの長さ)と、y軸の値の個数(質問のコードのyの長さ)は、同じにしなくてはいけなくて、その個数がプロットの数になります。  
なので、

[code]

    print(len(x))
    
[/code]

で、プロットの数が表示されます。（単にprintしたので、5 というような素っ気ない表示で画面に出るだけですが）

グラフのタイトルに「xxの散布図（プロット数：５）」なんて書くと、もっと感じが良いですかね。


CC BY-SA 4.0
2020-11-25T10:26:54.377
72200
2020-11-25T10:26:54.377
217
72197
answer


`xlim` や `ylim` の設定値によっては可視範囲にあるプロット数が異なる場合があります。以下では可視範囲にあるデータ数(プロット数)を返す
`num_visible_points()` 関数を定義しています。

[code]

    >>> def num_visible_points():
          ax = plt.gca()
          xmin, xmax = ax.xaxis.get_view_interval()
          ymin, ymax = ax.yaxis.get_view_interval()
          line = ax.get_lines()
          if not line: return 0
          line = line[0]
          xdata, ydata = line.get_xdata(), line.get_ydata()
          return sum((xdata>=xmin) & (xdata<=xmax) & (ydata>=ymin) & (ydata<=ymax))
    
    >>> plt.plot(x, y, 'o')
    >>> num_visible_points()
    6
    >>> plt.show()
    
[/code]

[![6
points](https://i.stack.imgur.com/z7Mkx.png)](https://i.stack.imgur.com/z7Mkx.png)

[code]

    >>> plt.plot(x, y, 'o')
    >>> plt.xlim(5, 20)
    (5.0, 20.0)
    >>> num_visible_points()
    3
    >>> plt.show()
    
[/code]

[![3
points](https://i.stack.imgur.com/iU3hX.png)](https://i.stack.imgur.com/iU3hX.png)


CC BY-SA 4.0
2020-11-25T11:30:50.897
72201
2020-11-25T12:17:01.220
2020-11-25T12:17:01.220
72197
answer