matplotlib에서 산점도를 만들고 실제 그림의 배경을 검은 색으로 변경해야합니다. 다음을 사용하여 플롯의 얼굴 색상을 변경하는 방법을 알고 있습니다.
fig = plt.figure()
fig.patch.set_facecolor('xkcd:mint green')
내 문제는 이것이 플롯 주위의 공간 색상을 변경한다는 것입니다. 플롯의 실제 배경색을 어떻게 변경합니까?
matplotlib에서 산점도를 만들고 실제 그림의 배경을 검은 색으로 변경해야합니다. 다음을 사용하여 플롯의 얼굴 색상을 변경하는 방법을 알고 있습니다.
fig = plt.figure()
fig.patch.set_facecolor('xkcd:mint green')
내 문제는 이것이 플롯 주위의 공간 색상을 변경한다는 것입니다. 플롯의 실제 배경색을 어떻게 변경합니까?
답변:
다음 방법 중 하나를 만든 객체 의 set_facecolor(color)
메소드를axes
사용하십시오 .
도형과 축을 함께 만들었습니다
fig, ax = plt.subplots(nrows=1, ncols=1)
그림을 만든 다음 나중에 축을
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.colors
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'범주 팔레트 (기본 색상주기)의 Tableau 색상입니다.- "CN"컬러 사양, 즉 'C'다음에 한 자리 숫자가 오며, 이는 기본 속성주기 (
matplotlib.rcParams['axes.prop_cycle']
)에 대한 인덱스입니다 . 인덱싱은 아티스트 생성시 발생하며 사이클에 색상이 포함되지 않은 경우 기본값은 검은 색입니다."CN"이외의 모든 색상 문자열은 대소 문자를 구분하지 않습니다.
MethodNotFound
한 가지 방법은 스크립트 내에서 축 배경색의 기본값을 수동으로 설정하는 것입니다 ( matplotlib 사용자 정의 참조 ).
import matplotlib.pyplot as plt
plt.rcParams['axes.facecolor'] = 'black'
이는 특정 axes
객체의 배경색을 변경하는 Nick T의 방법과 대조적 입니다. 비슷한 스타일로 여러 개의 다른 플롯을 만들고 다른 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')
(검은 색 배경이 아닌 산점도가 아닙니다.)
plt.subplot('111', axisbg='black')
Windows를 사용하여 플로팅 명령 이전에 성공했습니다 .
axis_bg
axis_bgcolor
하기 matplotlib 2.2.0에서하기 matplotlib 2.0.0에서 사용되지 및 제거
다른 답변의 한 가지 제안은을 사용하는 것 ax.set_axis_bgcolor("red")
입니다. 그러나 이것은 더 이상 사용되지 않으며 MatPlotLib> = v2.0에서는 작동하지 않습니다.
사용할 제안도 있습니다 ax.patch.set_facecolor("red")
(MatPlotLib v1.5 및 v2.2 모두에서 작동). 이것이 잘 작동하지만 v2.0 +를위한 훨씬 쉬운 솔루션을 사용하는 것입니다
ax.set_facecolor("red")
ax.set_axis_bgcolor("black")
로 Python v2.7.14 / MPL v1.5.1에서는 작동하지만 ax.set_facecolor()
작동하지 않습니다. MPL v1.5.1과 v2.2.0 사이에서 적절한 기능이 전환되었습니다.
ax.patch.set_facecolor("red")
. 권장되는 방법으로 matplotlib 2.0의 너트는 ax.set_facecolor
입니다.
ax.patch.set_facecolor('black')
어디에 있습니까ax
?fig.patch
그림 배경이고ax.patch
축 배경입니다.