일부 데이터 파일에서 등고선 도표를 만들려고합니다. 내가 가지고있는 문제는 색상 막대의 최소값 아래의 z 값이 최소값과 같은 색상이되도록하려는 것입니다. 예를 들어 선형 눈금을 사용할 때 이것은 쉽습니다. contourf
에 대해 extend="both"
옵션을 사용하거나 색상 표에 cmap.set_under()
을 사용하십시오. 불행히도 이러한 옵션 중 어느 것도 로그 스케일을 사용할 때 작동하지 않습니다. 누구든지 해결 방법을 제안 할 수 있습니까? 난 그냥 아래의 그래프에서 흰색 영역을 제거하려면 : 로그 스케일로 작업하지 extend
키워드 matplotlib
와 known issue 것 같습니다Python : 로그 스케일 색상 막대가 필요한 contourf 플롯에서 0 값 색상 설정
#!/usr/bin/env python
import numpy as np
import matplotlib.pyplot as plt
import scipy.interpolate
from matplotlib import colors, ticker, cm
from matplotlib.colors import LogNorm
N = 100 #number of points for plotting/interpolation
y, x, z = np.genfromtxt(r'40Ca_208Pb_39K_Ex_115deg.dat', unpack=True)
xi = np.linspace(x.min(), x.max(), N)
yi = np.linspace(y.min(), y.max(), N)
zi = scipy.interpolate.griddata((x, y), z, (xi[None,:], yi[:,None]), method='linear')
hfont = {'fontname':'Palatino'}
fig = plt.figure(facecolor="white")
zi = np.ma.masked_less(zi, 1e-7)
plt.contourf(xi, yi, zi,levels=[1e-7,1e-6,1e-5,1e-4,1e-3,1e-2,1e-1],cmap=plt.cm.jet,norm = LogNorm())
plt.xlabel("$E_{x}$")
plt.ylabel("$E/V_{B}$")
plt.colorbar()
plt.show()
당신이 만약 'set_under'가 제대로 작동하지 않는다고 생각하면 문제의 [mcve]를 제공해야합니다. 여기에서는 배열을 마스크하여 플롯하므로 마스크 된 부분은 단순히 플롯되지 않습니다. 플롯되지 않은 것에 색을 설정할 수 없습니다. 반면에 축의 배경색을 원하는 색상으로 간단히 변경할 수 있습니다. – ImportanceOfBeingErnest