아티스트 튜토리얼 #

Artist 개체를 사용하여 캔버스에 렌더링합니다.

Matplotlib API에는 세 개의 계층이 있습니다.

  • 그림 이 matplotlib.backend_bases.FigureCanvas그려지는 영역입니다.

  • the matplotlib.backend_bases.Renderer는 어떻게 그리는지 아는 객체입니다.FigureCanvas

  • 렌더러 를 matplotlib.artist.Artist사용하여 캔버스에 페인팅하는 방법을 알고 있는 개체입니다.

wxPythonFigureCanvasRenderer같은 사용자 인터페이스 툴킷 이나 PostScript®와 같은 그리기 언어와 대화하는 모든 세부 사항 을 처리하고 그림, 텍스트 및 선을 표시하고 배치하는 것과 같은 모든 높은 수준의 구성을 처리합니다. 일반 사용자는 시간의 95%를 .ArtistArtists

Artists프리미티브와 컨테이너 의 두 가지 유형이 있습니다 . 프리미티브는 우리가 캔버스에 그리려는 표준 그래픽 개체를 나타냅니다: Line2D, Rectangle, Text, AxesImage등. 컨테이너는 그것들을 넣을 장소입니다( Axis, AxesFigure). 표준 용도는 Figure인스턴스 를 만들고 , Figure하나 이상의 인스턴스를 만드는 데 사용하고, 인스턴스 도우미 메서드를 사용하여 프리미티브를 만드는 것입니다. 아래 예에서는 인스턴스를 인스턴스화 하고 이를 사용자 인터페이스 또는 드로잉 툴킷과 연결 하는 편리한 방법인 를 사용하여 인스턴스 를 생성합니다.AxesSubplotAxesFigurematplotlib.pyplot.figure()FigureFigureCanvas. 아래에서 논의하겠지만 이것은 필요하지 않습니다. PostScript, PDF Gtk+ 또는 wxPython FigureCanvas인스턴스로 직접 작업하고 직접 인스턴스화 Figures 하고 직접 연결할 수 있지만 여기서는 API에 초점을 맞추고 있으므로 일부는 처리 Artist하도록 하겠습니다. pyplot우리를 위한 세부 정보:

import matplotlib.pyplot as plt
fig = plt.figure()
ax = fig.add_subplot(2, 1, 1) # two rows, one column, first plot

아마도 Matplotlib API에서 가장 Axes중요한 클래스이며 대부분의 시간 동안 작업하게 될 것입니다. 이는 가 Axes대부분의 개체가 들어가는 플로팅 영역이고 에 가장 일반적인 그래픽 프리미티브(각각 , , , )를 생성하기 위한 많은 특수 도우미 Axes메서드( plot(), text(), hist(), )가 있기 때문 입니다. 이러한 도우미 메서드는 데이터(예: 배열 및 문자열)를 가져와 필요에 따라 기본 인스턴스를 만들고(예: ) 관련 컨테이너에 추가하고 요청 시 그릴 것입니다. 대부분의 사용자는 에 대해 잘 알고 있을 것 입니다 .imshow()Line2DTextRectangleAxesImagenumpyArtistLine2DSubplotAxesSubplot인스턴스. Axes임의의 위치에 생성하려면 0-1 상대 그림 좌표 add_axes()의 값 목록을 사용하는 방법을 사용하십시오.[left, bottom, width, height]

fig2 = plt.figure()
ax2 = fig2.add_axes([0.15, 0.1, 0.7, 0.3])

계속해서 예제를 살펴보겠습니다.

import numpy as np
t = np.arange(0.0, 1.0, 0.01)
s = np.sin(2*np.pi*t)
line, = ax.plot(t, s, color='blue', lw=2)

이 예에서 ax는 위의 호출 Axes에 의해 생성된 인스턴스 ( 단지 의 하위 클래스임을 기억하십시오 )를 호출 하면 인스턴스 를 생성하여 에 추가합니다 . 아래 대화형 IPython 세션에서 목록의 길이가 1이고 호출 에서 반환된 것과 동일한 줄을 포함하고 있음을 확인할 수 있습니다 .fig.add_subplotSubplotAxesax.plotLine2DAxesAxes.linesline, = ax.plot...

In [101]: ax.lines[0]
Out[101]: <matplotlib.lines.Line2D at 0x19a95710>

In [102]: line
Out[102]: <matplotlib.lines.Line2D at 0x19a95710>

후속 호출을 수행하면 ax.plot(및 보류 상태가 기본값인 "on"인 경우) 추가 회선이 목록에 추가됩니다. remove해당 메서드 를 호출하여 나중에 줄을 제거할 수 있습니다 .

line = ax.lines[0]
line.remove()

Axes에는 x축 및 y축 눈금, 눈금 레이블 및 축 레이블을 구성하고 장식하는 도우미 메서드도 있습니다.

xtext = ax.set_xlabel('my xdata')  # returns a Text instance
ytext = ax.set_ylabel('my ydata')

를 호출하면 의 인스턴스에 ax.set_xlabel대한 정보를 전달합니다 . 각 인스턴스에는 눈금, 눈금 레이블 및 축 레이블의 레이아웃과 그리기를 처리 하는 및 인스턴스가 포함되어 있습니다.TextXAxisAxesXAxisYAxis

아래 그림을 만들어 보세요.

import numpy as np
import matplotlib.pyplot as plt

fig = plt.figure()
fig.subplots_adjust(top=0.8)
ax1 = fig.add_subplot(211)
ax1.set_ylabel('volts')
ax1.set_title('a sine wave')

t = np.arange(0.0, 1.0, 0.01)
s = np.sin(2*np.pi*t)
line, = ax1.plot(t, s, color='blue', lw=2)

# Fixing random state for reproducibility
np.random.seed(19680801)

ax2 = fig.add_axes([0.15, 0.1, 0.7, 0.3])
n, bins, patches = ax2.hist(np.random.randn(1000), 50,
                            facecolor='yellow', edgecolor='yellow')
ax2.set_xlabel('time (s)')

plt.show()
사인파

개체 사용자 지정 #

그림의 모든 요소는 Matplotlib 로 표시되며 각 요소에는 Artist모양을 구성하는 광범위한 속성 목록이 있습니다. 그림 자체에는 그림 Rectangle의 크기와 배경색 및 투명도를 설정하는 데 사용할 수 있는 정확한 크기가 포함되어 있습니다. 마찬가지로 각 Axes경계 상자(일반적인 Matplotlib 플롯에서 검은색 가장자리가 있는 표준 흰색 상자) Rectangle에는 축의 색상, 투명도 및 기타 속성을 결정하는 인스턴스가 있습니다. 이러한 인스턴스는 멤버 변수로 저장되며 Figure.patch( Axes.patch"패치"는 MATLAB에서 상속된 이름이며 그림에 있는 색상의 2D "패치"입니다(예: 직사각형, 원 및 다각형). 모든 Matplotlib Artist에는 다음과 같은 속성이 있습니다 .

재산

설명

알파

투명도 - 0-1의 스칼라

생기 있는

애니메이션 그리기를 용이하게 하는 데 사용되는 부울

아티스트가 살고 있는 축, 아마도 없음

클립박스

아티스트를 자르는 경계 상자

클립온

클리핑 활성화 여부

clip_path

아티스트가 클립되는 경로

포함

아티스트가 픽 포인트를 포함하는지 여부를 테스트하는 픽킹 기능

수치

아티스트가 살고 있는 그림 인스턴스, 아마도 None

상표

텍스트 레이블(예: 자동 레이블 지정용)

이쑤시개

객체 선택을 제어하는 ​​Python 객체

변환

변형

보이는

아티스트를 그려야 하는지 여부를 나타내는 부울

조더

그리기 순서를 결정하는 숫자

래스터화

부울; 벡터를 래스터 그래픽으로 변환(압축 및 EPS 투명도를 위해)

각 속성은 구식 setter 또는 getter로 액세스됩니다(예, 이것이 Pythonistas를 짜증나게 한다는 것을 알고 있으며 속성 또는 특성을 통한 직접 액세스를 지원할 계획이지만 아직 완료되지 않았습니다). 예를 들어, 현재 알파에 반을 곱하려면:

a = o.get_alpha()
o.set_alpha(0.5*a)

여러 속성을 한 번에 설정하려는 경우 set키워드 인수와 함께 메서드를 사용할 수도 있습니다. 예를 들어:

o.set(alpha=0.5, zorder=2)

ArtistPython 셸에서 대화식으로 작업하는 경우 속성 을 검사하는 편리한 방법 은 속성과 해당 값을 나열하는 matplotlib.artist.getp()함수(단순히 pyplot에서)를 사용하는 것입니다. 이것은 또한 및 getp()에서 파생된 클래스에서도 작동합니다 . 위에서 언급한 사각형 속성 은 다음과 같습니다 .ArtistFigureRectangleFigure

In [149]: matplotlib.artist.getp(fig.patch)
  agg_filter = None
  alpha = None
  animated = False
  antialiased or aa = False
  bbox = Bbox(x0=0.0, y0=0.0, x1=1.0, y1=1.0)
  capstyle = butt
  children = []
  clip_box = None
  clip_on = True
  clip_path = None
  contains = None
  data_transform = BboxTransformTo(     TransformedBbox(         Bbox...
  edgecolor or ec = (1.0, 1.0, 1.0, 1.0)
  extents = Bbox(x0=0.0, y0=0.0, x1=640.0, y1=480.0)
  facecolor or fc = (1.0, 1.0, 1.0, 1.0)
  figure = Figure(640x480)
  fill = True
  gid = None
  hatch = None
  height = 1
  in_layout = False
  joinstyle = miter
  label =
  linestyle or ls = solid
  linewidth or lw = 0.0
  patch_transform = CompositeGenericTransform(     BboxTransformTo(   ...
  path = Path(array([[0., 0.],        [1., 0.],        [1.,...
  path_effects = []
  picker = None
  rasterized = None
  sketch_params = None
  snap = None
  transform = CompositeGenericTransform(     CompositeGenericTra...
  transformed_clip_path_and_affine = (None, None)
  url = None
  verts = [[  0.   0.]  [640.   0.]  [640. 480.]  [  0. 480....
  visible = True
  width = 1
  window_extent = Bbox(x0=0.0, y0=0.0, x1=640.0, y1=480.0)
  x = 0
  xy = (0, 0)
  y = 0
  zorder = 1

모든 클래스의 독스트링에는 Artist 속성도 포함되어 있으므로 대화형 "도움말" 또는 matplotlib.artist 에서 주어진 개체의 속성 목록을 참조할 수 있습니다.

개체 컨테이너 #

구성하려는 특정 개체의 속성을 검사하고 설정하는 방법을 알았으므로 해당 개체에 도달하는 방법을 알아야 합니다. 서론에서 언급한 것처럼 객체에는 프리미티브와 컨테이너의 두 가지 종류가 있습니다. 프리미티브는 일반적으로 구성하려는 항목( Text 인스턴스의 글꼴, a의 너비 Line2D)이지만 컨테이너에도 몇 가지 속성이 있습니다. 예를 들어 the 는 플롯에 많은 프리미티브를 포함하는 컨테이너이지만 또한 x축이 '선형'인지 '로그'인지를 제어하는 ​​속성도 있습니다 . 이 섹션에서는 다양한 컨테이너 개체 가 원하는 항목을 저장하는 위치를 검토합니다.Axes ArtistxscaleArtists

그림 컨테이너 #

최상위 수준 컨테이너 Artist는 이며 matplotlib.figure.Figure그림의 모든 항목을 포함합니다. 그림의 배경은 에 Rectangle저장되는 입니다 Figure.patch. 그림 에 서브플롯( add_subplot()) 및 축( add_axes())을 추가하면 이들은 에 추가됩니다 Figure.axes. 이것들은 그것들을 생성하는 메소드에 의해서도 반환됩니다:

In [156]: fig = plt.figure()

In [157]: ax1 = fig.add_subplot(211)

In [158]: ax2 = fig.add_axes([0.1, 0.1, 0.7, 0.3])

In [159]: ax1
Out[159]: <AxesSubplot:>

In [160]: print(fig.axes)
[<AxesSubplot:>, <matplotlib.axes._axes.Axes object at 0x7f0768702be0>]

Figure는 pylab/pyplot 상태 머신을 지원하기 위해 "현재 축"( Figure.gca및 참조 Figure.sca)의 개념을 유지하므로 Axes 목록에서 직접 Axes를 삽입하거나 제거하지 말고 add_subplot()add_axes()메서드를 사용하여 삽입해야 합니다 Axes.remove. 지우는 것. Axes그러나 사용자 지정하려는 인스턴스 에 액세스하기 위해 Axes 목록을 반복하거나 색인을 만들 수 있습니다. 다음은 모든 축 그리드를 켜는 예입니다.

for ax in fig.axes:
    ax.grid(True)

Figure에는 고유 imageslines, patchestext 속성도 있으며 이를 사용하여 프리미티브를 직접 추가할 수 있습니다. 그렇게 하면 의 기본 좌표계 Figure는 단순히 픽셀 단위가 됩니다(일반적으로 원하는 것이 아님). 대신 그림 수준 방법을 사용하여 아티스트를 추가하는 경우(예: Figure.text텍스트 추가에 사용) 기본 좌표계는 "그림 좌표"가 됩니다. 여기서 (0, 0)은 그림의 왼쪽 하단이고 (1, 1)은 그림의 왼쪽 아래입니다. )는 그림의 오른쪽 상단입니다.

모든 Artists와 마찬가지로 transform 속성을 설정하여 이 좌표계를 제어할 수 있습니다. Artist변환을 fig.transFigure다음과 같이 설정하여 "그림 좌표"를 명시적으로 사용할 수 있습니다 .

import matplotlib.lines as lines

fig = plt.figure()

l1 = lines.Line2D([0, 1], [0, 1], transform=fig.transFigure, figure=fig)
l2 = lines.Line2D([0, 1], [1, 0], transform=fig.transFigure, figure=fig)
fig.lines.extend([l1, l2])

plt.show()
예술가들

Figure에 포함된 아티스트에 대한 요약은 다음과 같습니다.

그림 속성

설명

Axes인스턴스 목록 (서브플롯 포함)

반점

Rectangle배경 _

이미지

패치 목록 FigureImage- 원시 픽셀 표시에 유용

전설

그림 Legend인스턴스 목록( 과 다름 Axes.get_legend())

윤곽

Figure Line2D인스턴스 목록(거의 사용되지 않음, 참조 Axes.lines)

패치

그림 목록 Patch(거의 사용되지 않음, 참조 Axes.patches)

텍스트

목록 그림 Text인스턴스

축 컨테이너 #

matplotlib.axes.AxesMatplotlib 유니버스의 중심입니다. 여기에는 그림에 사용된 모든 것의 대부분이 포함되어 있으며 Artists이를 생성하고 자체에 추가하는 많은 도우미 메서드와 포함된 항목 Artists에 액세스하고 사용자 지정하는 도우미 메서드가 Artists포함되어 있습니다. 와 마찬가지로 데카르트 좌표에 대한 a 와 극좌표 에 대한 a 를 Figure포함합니다 . 이 패치는 플로팅 영역의 모양, 배경 및 테두리를 결정합니다.Patch patchRectangleCircle

ax = fig.add_subplot()
rect = ax.patch  # a Rectangle instance
rect.set_facecolor('green')

플로팅 메서드(예: 표준)를 호출하고 plot배열이나 값 목록을 전달할 때 메서드는 matplotlib.lines.Line2D인스턴스 를 만들고 Line2D키워드 인수로 전달된 모든 속성으로 행을 업데이트하고 에 행을 추가한 다음 Axes사용자에게 반환합니다. :

In [213]: x, y = np.random.rand(2, 100)

In [214]: line, = ax.plot(x, y, '-', color='blue', linewidth=2)

plot플롯에 여러 x, y 쌍을 전달할 수 있고 길이 목록의 첫 번째 요소를 line 변수로 풀기 때문에 라인 목록을 반환합니다. Axes.lines다음 행이 목록 에 추가되었습니다 .

In [229]: print(ax.lines)
[<matplotlib.lines.Line2D at 0xd378b0c>]

마찬가지로 bar()사각형 목록을 만드는 것과 같이 패치를 만드는 메서드는 목록에 패치를 추가합니다 Axes.patches.

In [233]: n, bins, rectangles = ax.hist(np.random.randn(1000), 50)

In [234]: rectangles
Out[234]: <BarContainer object of 50 artists>

In [235]: print(len(ax.patches))
Out[235]: 50

에서 개체 를 만들고 추가할 때 몇 가지 작업을 수행해야 하므로 Axes.lines또는 Axes.patches 목록 에 개체를 직접 추가 하면 안 됩니다.Axes

  • figureaxes속성을 설정합니다 Artist.

  • 기본 Axes변환을 설정합니다(아직 설정되지 않은 경우).

  • 에 포함된 데이터를 검사하여 Artist자동 크기 조정을 제어하는 ​​데이터 구조를 업데이트하므로 플롯된 데이터를 포함하도록 보기 제한을 조정할 수 있습니다.

그럼에도 불구하고 개체를 직접 만들고 및 와 Axes같은 using 도우미 메서드 에 직접 추가할 수 있습니다 . 다음은 진행 상황을 설명하는 주석이 달린 대화형 세션입니다.add_lineadd_patch

In [262]: fig, ax = plt.subplots()

# create a rectangle instance
In [263]: rect = matplotlib.patches.Rectangle((1, 1), width=5, height=12)

# by default the axes instance is None
In [264]: print(rect.axes)
None

# and the transformation instance is set to the "identity transform"
In [265]: print(rect.get_data_transform())
IdentityTransform()

# now we add the Rectangle to the Axes
In [266]: ax.add_patch(rect)

# and notice that the ax.add_patch method has set the axes
# instance
In [267]: print(rect.axes)
Axes(0.125,0.1;0.775x0.8)

# and the transformation has been set too
In [268]: print(rect.get_data_transform())
CompositeGenericTransform(
    TransformWrapper(
        BlendedAffine2D(
            IdentityTransform(),
            IdentityTransform())),
    CompositeGenericTransform(
        BboxTransformFrom(
            TransformedBbox(
                Bbox(x0=0.0, y0=0.0, x1=1.0, y1=1.0),
                TransformWrapper(
                    BlendedAffine2D(
                        IdentityTransform(),
                        IdentityTransform())))),
        BboxTransformTo(
            TransformedBbox(
                Bbox(x0=0.125, y0=0.10999999999999999, x1=0.9, y1=0.88),
                BboxTransformTo(
                    TransformedBbox(
                        Bbox(x0=0.0, y0=0.0, x1=6.4, y1=4.8),
                        Affine2D(
                            [[100.   0.   0.]
                             [  0. 100.   0.]
                             [  0.   0.   1.]])))))))

# the default axes transformation is ax.transData
In [269]: print(ax.transData)
CompositeGenericTransform(
    TransformWrapper(
        BlendedAffine2D(
            IdentityTransform(),
            IdentityTransform())),
    CompositeGenericTransform(
        BboxTransformFrom(
            TransformedBbox(
                Bbox(x0=0.0, y0=0.0, x1=1.0, y1=1.0),
                TransformWrapper(
                    BlendedAffine2D(
                        IdentityTransform(),
                        IdentityTransform())))),
        BboxTransformTo(
            TransformedBbox(
                Bbox(x0=0.125, y0=0.10999999999999999, x1=0.9, y1=0.88),
                BboxTransformTo(
                    TransformedBbox(
                        Bbox(x0=0.0, y0=0.0, x1=6.4, y1=4.8),
                        Affine2D(
                            [[100.   0.   0.]
                             [  0. 100.   0.]
                             [  0.   0.   1.]])))))))

# notice that the xlimits of the Axes have not been changed
In [270]: print(ax.get_xlim())
(0.0, 1.0)

# but the data limits have been updated to encompass the rectangle
In [271]: print(ax.dataLim.bounds)
(1.0, 1.0, 5.0, 12.0)

# we can manually invoke the auto-scaling machinery
In [272]: ax.autoscale_view()

# and now the xlim are updated to encompass the rectangle, plus margins
In [273]: print(ax.get_xlim())
(0.75, 6.25)

# we have to manually force a figure draw
In [274]: fig.canvas.draw()

Axes프리미티브를 생성 Artists하고 각각의 컨테이너에 추가하기 위한 수많은 도우미 메서드가 있습니다. 아래 표에는 작은 샘플, Artist생성 유형 및 저장 위치가 요약되어 있습니다.

축 도우미 방법

아티스트

컨테이너

annotate- 텍스트 주석

Annotation

도끼.텍스트

bar- 막 대형 차트

Rectangle

도끼 패치

errorbar- 오류 막대 그래프

Line2D그리고 Rectangle

ax.lines 및 ax.patches

fill- 공용 공간

Polygon

도끼 패치

hist- 히스토그램

Rectangle

도끼 패치

imshow- 이미지 데이터

AxesImage

도끼.이미지

legend- 축 범례

Legend

ax.get_legend()

plot- XY 플롯

Line2D

도끼.선

scatter- 분산형 차트

PolyCollection

도끼.컬렉션

text- 텍스트

Text

도끼.텍스트

이 모든 것 외에도 에는 눈금 및 레이블 그리기를 처리하는 두 가지 중요한 컨테이너인 및 Artists가 포함되어 있습니다. 이들은 인스턴스 변수로 저장 되며 . 및 컨테이너는 아래에 자세히 설명되어 있지만 인스턴스 에 대한 호출을 전달하는 많은 도우미 메서드가 포함되어 있으므로 원하지 않는 한 직접 작업할 필요가 없는 경우가 많습니다. 예를 들어 도우미 메서드 를 사용하여 눈금 레이블 의 글꼴 색상을 설정할 수 있습니다.AxesArtistXAxisYAxisxaxisyaxisXAxisYAxisAxesAxisXAxisAxes

ax.tick_params(axis='x', labelcolor='orange')

Axes다음은 에 포함 된 아티스트에 대한 요약입니다.

축 속성

설명

예술가들

인스턴스 ArtistList수 _Artist

반점

RectangleAxes 배경 인스턴스

컬렉션

인스턴스 ArtistList수 _Collection

이미지

ArtistList_AxesImage

윤곽

인스턴스 ArtistList수 _Line2D

패치

인스턴스 ArtistList수 _Patch

텍스트

인스턴스 ArtistList수 _Text

x축

matplotlib.axis.XAxis인스턴스 _

y축

matplotlib.axis.YAxis인스턴스 _

범례는 다음을 통해 액세스할 수 있습니다 get_legend.

축 컨테이너 #

인스턴스 는 matplotlib.axis.Axis눈금선, 눈금선, 눈금 레이블 및 축 레이블 그리기를 처리합니다. y축에 대해 왼쪽 및 오른쪽 눈금을 별도로 구성하고 x축에 대해 위쪽 및 아래쪽 눈금을 별도로 구성할 수 있습니다. 또한 Axis 자동 크기 조정, 패닝 및 확대/축소에 사용되는 데이터 및 보기 간격은 물론 눈금이 배치되는 위치와 눈금이 문자열로 표시되는 방식을 제어 하는 Locator​​및 인스턴스를 저장합니다.Formatter

Axis개체에는 주요 및 보조 눈금 목록뿐만 아니라 label속성( 및 pyplot에 대한 호출에서 수정되는 것)이 포함되어 있습니다. 눈금은 눈금 및 눈금 레이블을 렌더링하는 실제 라인 및 텍스트 프리미티브를 포함하는 인스턴스입니다. 틱은 필요에 따라 동적으로 생성되기 때문에(예: 패닝 및 확대/축소할 때) 접근자 메서드 및 를 통해 주요 및 보조 틱 목록에 액세스해야 합니다 . 틱에는 모든 프리미티브가 포함되어 있고 아래에서 다루겠지만 인스턴스에는 틱 라인, 틱 레이블, 틱 위치 등을 반환하는 접근자 메서드가 있습니다.xlabelylabelaxis.XTickaxis.YTickaxis.Axis.get_major_ticksaxis.Axis.get_minor_ticksAxis

예술가들
array([0. , 0.2, 0.4, 0.6, 0.8, 1. ])
[Text(0.0, 0, '0.0'), Text(0.2, 0, '0.2'), Text(0.4, 0, '0.4'), Text(0.6000000000000001, 0, '0.6'), Text(0.8, 0, '0.8'), Text(1.0, 0, '1.0')]

기본적으로 상단과 하단에 눈금선이 있지만 x축 아래에는 눈금 레이블만 있기 때문에 눈금선이 레이블보다 두 배 더 많습니다. 그러나 이것은 사용자 정의할 수 있습니다.

<a list of 12 Line2D ticklines objects>

그리고 위의 방법을 사용하면 기본적으로 주요 진드기 목록만 가져오지만 보조 진드기를 요청할 수도 있습니다.

axis.get_ticklabels(minor=True)
axis.get_ticklines(minor=True)
<a list of 0 Line2D ticklines objects>

다음은 의 유용한 접근자 메서드 중 일부에 대한 요약 Axis 입니다 set_major_formatter().

축 접근자 방법

설명

get_scale

축의 배율(예: 'log' 또는 'linear')

get_view_interval

Axis 보기 제한의 간격 인스턴스

get_data_interval

Axis 데이터 제한의 간격 인스턴스

get_gridlines

Axis의 그리드 선 목록

get_label

축 레이블 - Text인스턴스

get_offset_text

축 오프셋 텍스트 - Text인스턴스

get_ticklabels

인스턴스 목록 Text- 키워드 minor=True|False

get_ticklines

인스턴스 목록 Line2D- 키워드 minor=True|False

get_ticklocs

Tick ​​위치 목록 - 키워드 minor=True|False

get_major_locator

주요 진드기에 대한 ticker.Locator인스턴스

get_major_formatter

주요 진드기에 대한 ticker.Formatter인스턴스

get_minor_locator

ticker.Locator마이너 틱 의 인스턴스

get_minor_formatter

ticker.Formatter마이너 틱 의 인스턴스

get_major_ticks

Tick주요 틱에 대한 인스턴스 목록

get_minor_ticks

Tick작은 진드기에 대한 인스턴스 목록

grid

메이저 또는 마이너 틱에 대해 그리드를 켜거나 끕니다.

다음은 Axes 및 Tick 속성을 사용자 정의하는 아름다움 때문에 권장되지 않는 예입니다.

# plt.figure creates a matplotlib.figure.Figure instance
fig = plt.figure()
rect = fig.patch  # a rectangle instance
rect.set_facecolor('lightgoldenrodyellow')

ax1 = fig.add_axes([0.1, 0.3, 0.4, 0.4])
rect = ax1.patch
rect.set_facecolor('lightslategray')


for label in ax1.xaxis.get_ticklabels():
    # label is a Text instance
    label.set_color('red')
    label.set_rotation(45)
    label.set_fontsize(16)

for line in ax1.yaxis.get_ticklines():
    # line is a Line2D instance
    line.set_color('green')
    line.set_markersize(25)
    line.set_markeredgewidth(3)

plt.show()
예술가들

틱 컨테이너 #

The 는 the에서 the to the to the 로 matplotlib.axis.Tick하강하는 마지막 컨테이너 개체입니다 . 에는 눈금 및 그리드 선 인스턴스와 위쪽 및 아래쪽 눈금에 대한 레이블 인스턴스가 포함됩니다. 이들 각각은 의 속성으로 직접 액세스할 수 있습니다 .FigureAxesAxisTickTickTick

틱 속성

설명

틱1라인

Line2D인스턴스 _

틱2라인

Line2D인스턴스 _

격자선

Line2D인스턴스 _

라벨1

Text인스턴스 _

라벨2

Text인스턴스 _

다음은 달러 기호가 있는 오른쪽 눈금에 대한 포맷터를 설정하고 y축의 오른쪽에서 녹색으로 표시하는 예입니다.

import numpy as np
import matplotlib.pyplot as plt

# Fixing random state for reproducibility
np.random.seed(19680801)

fig, ax = plt.subplots()
ax.plot(100*np.random.rand(20))

# Use automatic StrMethodFormatter
ax.yaxis.set_major_formatter('${x:1.2f}')

ax.yaxis.set_tick_params(which='major', labelcolor='green',
                         labelleft=False, labelright=True)

plt.show()
달러 틱

스크립트의 총 실행 시간: ( 0분 1.067초)

Sphinx-Gallery에서 생성한 갤러리