【问题标题】:How to plot data points outside the plot region using the matpotlib? [duplicate]如何使用 matplotlib 在绘图区域外绘制数据点? [复制]
【发布时间】:2017-05-19 12:39:05
【问题描述】:

我正在使用 matplotlib 绘制数据点。

基本上,我想绘制离散点。其中许多被放置在边界上。但是,如附图所示,图形边界上的数据点仅显示为半圆,而不是整圆。

谁能建议如何将边界上的这些点绘制为完整的圆圈?

def PlotGrid(grid_point, file_name):
  plt.figure()
  dims = np.shape(grid_point)
  for i in range(0, dims[1]):
    for j in range(0, dims[2]):
      plt.plot(grid_point[0, i, j], grid_point[1, i, j], 'ro',  markersize=15)

谢谢!

【问题讨论】:

    标签: python numpy matplotlib


    【解决方案1】:

    plt.plot kwarg clip_on 设置为False,点将显示在轴外。

    plt.plot(grid_point[0, i, j], grid_point[1, i, j], 'ro',  markersize=15, clip_on=False)
    

    来自docs

    Artist.set_clip_on(b)

    设置艺术家是否使用剪辑。

    当假艺术家出现在轴的一侧时,可能会导致意想不到的结果。

    接受:[真 |假]

    这是一个最小的例子:

    import matplotlib.pyplot as plt
    
    fig, ax = plt.subplots(1)
    
    ax.set_xlim(0, 1)
    ax.set_ylim(0, 1)
    
    ax.plot(0, 0, 'ro', markersize=30, clip_on=True, label='clip_on=True')
    ax.plot(1, 1, 'bo', markersize=30, clip_on=False, label='clip_on=False')
    
    ax.legend()    
    
    plt.show()
    

    【讨论】:

      【解决方案2】:

      艺术家可以通过不允许轴剪辑他们显示在轴之外,例如plt.plot(..., clip_on=False),

      import matplotlib.pyplot as plt
      import numpy as np
      plt.rcParams["figure.figsize"] = (5,4)
      
      plt.figure()
      X,Y = np.meshgrid(range(4),range(4))
      for i in range(0, 4):
          for j in range(0, 4):
              plt.plot(X[i,j], Y[i,j], 'ro',  markersize=30, clip_on=False)
      plt.margins(0.0)        
      plt.show()
      

      但是,扩展坐标轴范围可能会更好,这样艺术家实际上完全生活在坐标轴内。这可以使用plt.margins() 来完成。

      import matplotlib.pyplot as plt
      import numpy as np
      
      plt.figure()
      X,Y = np.meshgrid(range(4),range(4))
      for i in range(0, 4):
          for j in range(0, 4):
              plt.plot(X[i,j], Y[i,j], 'ro',  markersize=30)
      plt.margins(0.1)  ## add 10% margin on all sides      
      plt.show()
      

      【讨论】:

        猜你喜欢
        • 2012-07-10
        • 2023-03-22
        • 1970-01-01
        • 1970-01-01
        • 2019-05-31
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-02-23
        相关资源
        最近更新 更多