본문 바로가기
파이썬

파이썬 matplotlib : 제목 및 컬러 바 텍스트 및 눈금 색상 변경

by º기록 2020. 9. 17.
반응형

컬러 바에서 틱의 색상을 변경하는 방법과 그림에서 제목과 컬러 바의 글꼴 색상을 변경하는 방법을 알고 싶었습니다. 예를 들어, 분명히 temp.png에서는 볼 수 있지만 temp2.png에서는 볼 수 없습니다.

import matplotlib.pyplot as plt
import numpy as np
from numpy.random import randn

fig = plt.figure()
data = np.clip(randn(250,250),-1,1)
cax = plt.imshow(data, interpolation='nearest')
plt.title('my random fig')
plt.colorbar()

# works fine
plt.savefig('temp.png')
# title and colorbar ticks and text hidden
plt.savefig('temp2.png', facecolor="black", edgecolor="none")

감사

 

해결 방법

 

이는 matplotlib에서 객체 핸들러의 속성을 검사하고 설정하여 수행 할 수 있습니다.

코드를 편집하고 주석에 몇 가지 설명을 넣었습니다.

import matplotlib.pyplot as plt
import numpy as np
from numpy.random import randn

fig = plt.figure()
data = np.clip(randn(250,250),-1,1)
cax = plt.imshow(data, interpolation='nearest')

title_obj = plt.title('my random fig') #get the title property handler
plt.getp(title_obj)                    #print out the properties of title
plt.getp(title_obj, 'text')            #print out the 'text' property for title
plt.setp(title_obj, color='r')         #set the color of title to red

axes_obj = plt.getp(cax,'axes')                 #get the axes' property handler
ytl_obj = plt.getp(axes_obj, 'yticklabels')     #get the properties for 
                                                #  yticklabels
plt.getp(ytl_obj)                               #print out a list of properties
                                                #  for yticklabels
plt.setp(ytl_obj, color="r")                    #set the color of yticks to red

plt.setp(plt.getp(axes_obj, 'xticklabels'), color='r') #xticklabels: same

color_bar = plt.colorbar()                            #this one is a little bit
cbytick_obj = plt.getp(color_bar.ax.axes, 'yticklabels')                #tricky
plt.setp(cbytick_obj, color='r')

plt.savefig('temp.png')
plt.savefig('temp2.png', facecolor="black", edgecolor="none")

 

참조 페이지 https://stackoverflow.com/questions/9662995

 

 

반응형

댓글