class_docstr: Define how the connection between two line segments is drawn.
  
  For a visual impression of each *JoinStyle*, `view these docs online
  <JoinStyle>`, or run `JoinStyle.demo`.
  
  Lines in Matplotlib are typically defined by a 1D `~.path.Path` and a
  finite ``linewidth``, where the underlying 1D `~.path.Path` represents the
  center of the stroked line.
  
  By default, `~.backend_bases.GraphicsContextBase` defines the boundaries of
  a stroked line to simply be every point within some radius,
  ``linewidth/2``, away from any point of the center line. However, this
  results in corners appearing "rounded", which may not be the desired
  behavior if you are drawing, for example, a polygon or pointed star.
  
  **Supported values:**
  
  .. rst-class:: value-list
  
      'miter'
          the "arrow-tip" style. Each boundary of the filled-in area will
          extend in a straight line parallel to the tangent vector of the
          centerline at the point it meets the corner, until they meet in a
          sharp point.
      'round'
          stokes every point within a radius of ``linewidth/2`` of the center
          lines.
      'bevel'
          the "squared-off" style. It can be thought of as a rounded corner
          where the "circular" part of the corner has been cut off.
  
  .. note::
  
      Very long miter tips are cut off (to form a *bevel*) after a
      backend-dependent limit called the "miter limit", which specifies the
      maximum allowed ratio of miter length to line width. For example, the
      PDF backend uses the default value of 10 specified by the PDF standard,
      while the SVG backend does not even specify the miter limit, resulting
      in a default value of 4 per the SVG specification. Matplotlib does not
      currently allow the user to adjust this parameter.
  
      A more detailed description of the effect of a miter limit can be found
      in the `Mozilla Developer Docs
      <https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/stroke-miterlimit>`_
  
  .. plot::
      :alt: Demo of possible JoinStyle's
  
      from matplotlib._enums import JoinStyle
      JoinStyle.demo()
class_docstr_tok: ["Define","how","the","connection","between","two","line","segments","is","drawn",".","For","a","visual","impression","of","each","*","JoinStyle","*",",","`","view","these","docs","online","<","JoinStyle",">","`",",","or","run","`","JoinStyle.demo","`",".","Lines","in","Matplotlib","are","typically","defined","by","a","1D","`","~.path.Path","`","and","a","finite","``","linewidth","``",",","where","the","underlying","1D","`","~.path.Path","`","represents","the","center","of","the","stroked","line",".","By","default",",","`","~.backend_bases.GraphicsContextBase","`","defines","the","boundaries","of","a","stroked","line","to","simply","be","every","point","within","some","radius",",","``","linewidth\/2","``",",","away","from","any","point","of","the","center","line",".","However",",","this","results","in","corners","appearing","``","rounded","''",",","which","may","not","be","the","desired","behavior","if","you","are","drawing",",","for","example",",","a","polygon","or","pointed","star",".","*","*","Supported","values",":","*","*","..","rst-class",":",":","value-list","'miter'","the","``","arrow-tip","''","style",".","Each","boundary","of","the","filled-in","area","will","extend","in","a","straight","line","parallel","to","the","tangent","vector","of","the","centerline","at","the","point","it","meets","the","corner",",","until","they","meet","in","a","sharp","point",".","'round'","stokes","every","point","within","a","radius","of","``","linewidth\/2","``","of","the","center","lines",".","'bevel'","the","``","squared-off","''","style",".","It","can","be","thought","of","as","a","rounded","corner","where","the","``","circular","''","part","of","the","corner","has","been","cut","off",".","..","note",":",":","Very","long","miter","tips","are","cut","off","(","to","form","a","*","bevel","*",")","after","a","backend-dependent","limit","called","the","``","miter","limit","''",",","which","specifies","the","maximum","allowed","ratio","of","miter","length","to","line","width",".","For","example",",","the","PDF","backend","uses","the","default","value","of","10","specified","by","the","PDF","standard",",","while","the","SVG","backend","does","not","even","specify","the","miter","limit",",","resulting","in","a","default","value","of","4","per","the","SVG","specification",".","Matplotlib","does","not","currently","allow","the","user","to","adjust","this","parameter",".","A","more","detailed","description","of","the","effect","of","a","miter","limit","can","be","found","in","the","`","Mozilla","Developer","Docs","<","https",":","\/\/developer.mozilla.org\/en-US\/docs\/Web\/SVG\/Attribute\/stroke-miterlimit",">","`","_","..","plot",":",":",":","alt",":","Demo","of","possible","JoinStyle's","from","matplotlib._enums","import","JoinStyle","JoinStyle.demo","(",")"]
docstr: Demonstrate how each JoinStyle looks for various join angles.
docstr_tok: ["Demonstrate","how","each","JoinStyle","looks","for","various","join","angles","."]
code: def demo():
      """Demonstrate how each JoinStyle looks for various join angles."""
      import numpy as np
      import matplotlib.pyplot as plt
  
      def plot_angle(ax, x, y, angle, style):
          phi = np.radians(angle)
          xx = [x + 0.5, x, x + 0.5 * np.cos(phi)]
          yy = [y, y, y + 0.5 * np.sin(phi)]
          ax.plot(
              xx, yy, lw=12, color="tab:blue", solid_joinstyle=style
          )
          ax.plot(xx, yy, lw=1, color="black")
          ax.plot(xx[1], yy[1], "o", color="tab:red", markersize=3)
  
      fig, ax = plt.subplots(figsize=(5, 4), constrained_layout=True)
      ax.set_title("Join style")
      for x, style in enumerate(["miter", "round", "bevel"]):
          ax.text(x, 5, style)
          for y, angle in enumerate([20, 45, 60, 90, 120]):
              plot_angle(ax, x, y, angle, style)
              if x == 0:
                  ax.text(-1.3, y, f"{angle} degrees")
      ax.set_xlim(-1.5, 2.75)
      ax.set_ylim(-0.5, 5.5)
      ax.set_axis_off()
      fig.show()
  
file_path: catboost/contrib/python/matplotlib/py3/matplotlib/_enums.py
imports: from enum import Enum, auto
  from matplotlib import _docstring
label_desc: Use image node_id 1 for calling the JoinStyle obj's underlying member method code with example usage: obj.demo() without return types