あなたはW/O sns.heatmap
を行うことを耐えることができた場合はそのでこれを行うには、おそらくより自然pcolormesh
import matplotlib.pyplot as plt
import matplotlib.ticker as ticker
import numpy as np
C_vals = np.logspace(3, 10, 8)
g_vals = np.logspace(-6, 2, 9)
score = np.random.rand(len(g_vals),len(C_vals))
fig, ax = plt.subplots()
ax.pcolormesh(C_vals, g_vals, score)
ax.set_yscale('log')
ax.set_xscale('log')
plt.show()

以下に指摘されているように、pcolormesh
は同じように中央に位置しません。さらに、実際にはレベルを落とします。その動作を変更するにはPRがありますが、回避策があります。私はこの時点で、それほど上品ではなく、heatmap
の出力を乱用するよりも認めている。
import matplotlib.pyplot as plt
import matplotlib.ticker as ticker
import numpy as np
C_vals = np.logspace(3, 10, 8)
g_vals = np.logspace(-6, 2, 9)
# make bracketing:
def midpointext(x):
return np.hstack((1.5 * x[0] - 0.5 * x[1],
x[:-1] + 0.5 * np.diff(x),
1.5 * x[-1] - 0.5 * x[-2]))
newC = np.log10(C_vals)
newC = midpointext(newC)
newC = 10**newC
newg = np.log10(g_vals)
newg = midpointext(newg)
newg = 10**newg
score = np.random.rand(len(g_vals),len(C_vals))
fig, ax = plt.subplots()
ax.pcolormesh(newC, newg, score)
ax.set_yscale('log')
ax.set_xscale('log')
plt.show()

美しい、それは私が望んでいたまさにそれです! – German