source

플롯 배경색을 변경하는 방법

goodcode 2022. 9. 12. 11:38
반응형

플롯 배경색을 변경하는 방법

matplotlib에서 산점도를 만들고 있으며 실제 그림의 배경을 검은색으로 변경해야 합니다.다음을 사용하여 플롯의 얼굴 색상을 변경하는 방법을 알고 있습니다.

fig = plt.figure()
fig.patch.set_facecolor('xkcd:mint green')

여기에 이미지 설명 입력

나의 문제는 이것이 플롯 주변 공간의 색을 바꾼다는 것이다.플롯의 실제 배경색을 변경하려면 어떻게 해야 합니까?

다음 방법 중 하나를 사용하여 작성한 객체의 메서드를 사용합니다.

  • 그림과 축/es를 함께 작성했습니다.

    fig, ax = plt.subplots(nrows=1, ncols=1)
    
  • 그림을 작성한 후 나중에 축/es

    fig = plt.figure()
    ax = fig.add_subplot(1, 1, 1) # nrows, ncols, index
    
  • 스테이트풀 API를 사용하였습니다(여러 줄 이상의 작업을 하고 있는 경우, 특히 플롯이 여러 개 있는 경우, 위의 객체 지향 메서드를 사용하면 특정 그림을 참조하거나 특정 축에 플롯하거나 둘 중 하나를 커스터마이즈할 수 있으므로 생활이 쉬워집니다).

    plt.plot(...)
    ax = plt.gca()
    

그럼, 을 사용할 수 있습니다.set_facecolor:

ax.set_facecolor('xkcd:salmon')
ax.set_facecolor((1.0, 0.47, 0.42))

축에 분홍색 배경이 있는 예제 그림

어떤 색상을 선택할 수 있는지에 대한 리프레셔:

matplotlib.syslog

Matplotlib은 다음 형식을 인식하여 색상을 지정합니다.

  • 부동값의 RGB 또는 RGBA 태플[0, 1](예:(0.1, 0.2, 0.5)또는(0.1, 0.2, 0.5, 0.3));
  • 16진수 RGB 또는 RGBA 문자열(예:'#0F0F0F'또는'#0F0F0F0F');
  • 플로트 값의 문자열 표현[0, 1]그레이 레벨의 경우 포함(예:'0.5');
  • 중 하나{'b', 'g', 'r', 'c', 'm', 'y', 'k', 'w'};
  • X11/CSS4 색상명
  • xkcd 색조사의 이름, 앞에 붙이는 이름'xkcd:'(예:'xkcd:sky blue');
  • 중 하나{'tab:blue', 'tab:orange', 'tab:green', 'tab:red', 'tab:purple', 'tab:brown', 'tab:pink', 'tab:gray', 'tab:olive', 'tab:cyan'}T10' 범주형 팔레트의 Tabau 색상(기본 색상 주기)입니다.
  • "CN" 색상 사양, 즉 "C" 뒤에 기본 속성 사이클에 대한 색인인 한 자리 숫자(matplotlib.rcParams['axes.prop_cycle']). 아티스트 작성 시 인덱스가 실행되며 사이클에 컬러가 포함되지 않으면 기본값은 검은색입니다.

"CN"을 제외한 모든 색상 문자열 사양은 대소문자를 구분하지 않습니다.

한 가지 방법은 스크립트 내에서 축 배경색의 기본값을 수동으로 설정하는 것입니다(matplotlib 사용자 정의 참조).

import matplotlib.pyplot as plt
plt.rcParams['axes.facecolor'] = 'black'

이것은 특정의 배경색을 변경하는 Nick T의 방법과는 대조적입니다.axes물건.유사한 스타일로 여러 개의 다른 그림을 만들고 계속 다른 그림을 변경하지 않으려는 경우 기본값을 재설정하는 것이 유용합니다.axes물건들.

주의: 다음 항목에 상당합니다.

fig = plt.figure()
fig.patch.set_facecolor('black')

질문 내용은 다음과 같습니다.

plt.rcParams['figure.facecolor'] = 'black'

이런 거?를 사용합니다.axisbg키워드subplot:

>>> from matplotlib.figure import Figure
>>> from matplotlib.backends.backend_agg import FigureCanvasAgg as FigureCanvas
>>> figure = Figure()
>>> canvas = FigureCanvas(figure)
>>> axes = figure.add_subplot(1, 1, 1, axisbg='red')
>>> axes.plot([1,2,3])
[<matplotlib.lines.Line2D object at 0x2827e50>]
>>> canvas.print_figure('red-bg.png')

(허용, 산점도, 검은색 배경 없음).

여기에 이미지 설명 입력

간단한 답변:

ax = plt.axes()
ax.set_facecolor('silver')

「 」를 가지고 있는 axesNick T의 답변에서와 같이 오브젝트도 사용할 수 있습니다.

 ax.patch.set_facecolor('black')

가장 쉬운 것은 플롯을 작성할 때 색상을 지정하는 것입니다.

fig1 = plt.figure(facecolor=(1, 1, 1))

또는

fig1, (ax1, ax2) = plt.subplots(nrows=1, ncols=2, facecolor=(1, 1, 1))

하는 것 중 하나는 '먹다'를 사용하는 입니다.ax.set_axis_bgcolor("red")MatPlotLib > = v2.0에서는 작동하지 않습니다.

,, 음, 음, 음, 다, 다, 다, 다, 다, 다, 또, there, there, there, there, there, there, there, thereax.patch.set_facecolor("red")( MatPlotLib v1 . 5 2 v2 . 2 ) 。하지만, 는, 「v2.0+」를 사용하는 .

ax.set_facecolor("red")

NickT의 답변에 덧붙여, 배경 프레임을 「없음」으로 설정해 삭제할 수도 있습니다.https://stackoverflow.com/a/67126649/8669161

import matplotlib.pyplot as plt
plt.rcParams['axes.facecolor'] = 'none'

이 방법은 일부 사용자에게 유용할 수 있습니다.

그림 주위의 배경색을 변경하려면 , 다음의 순서를 사용할 수 있습니다.

fig.patch.set_facecolor('white')

이 대신:

배경이 투명한 이미지

다음과 같이 표시됩니다.

여기에 이미지 설명 입력

물론 원하는 색상을 설정할 수 있습니다.

추신. 우연히 두 그림 사이에 차이가 없는 경우 다크 모드를 사용하여 StackOverflow를 살펴보십시오.

언급URL : https://stackoverflow.com/questions/14088687/how-to-change-plot-background-color

반응형