I sh, чтобы показать неоднородное имшоу с прозрачностью. Но у меня проблемы с некоторыми дополнительными строками
Вот мой код
import numpy as np
import matplotlib.pyplot as plt
def nuimshow(DIM, COV, matrix, ax, method='gouraud', **kwargs):
base = 2
DIM_log = np.log(DIM) / np.log(base)
COV_log = np.log(COV) / np.log(base)
if method == 'gouraud':
ax.pcolormesh(COV_log, DIM_log, matrix, shading='gouraud', **kwargs)
else:
no_dim, no_cov = len(DIM), len(COV)
P_DIM = np.zeros(no_dim + 1)
P_DIM[0] = (3 * DIM_log[0] - DIM_log[1]) / 2
P_DIM[1:-1] = (DIM_log[:-1] + DIM_log[1:]) / 2
P_DIM[-1] = (3 * DIM_log[-1] - DIM_log[-2]) / 2
P_COV = np.zeros(no_cov + 1)
P_COV[0] = (3 * COV_log[0] - COV_log[1]) / 2
P_COV[1:-1] = (COV_log[:-1] + COV_log[1:]) / 2
P_COV[-1] = (3 * COV_log[-1] - COV_log[-2]) / 2
ax.pcolormesh(P_COV, P_DIM, matrix, **kwargs)
ax.set_xticks(COV_log)
ax.set_yticks(DIM_log)
ax.set_xticklabels(COV)
ax.set_yticklabels(DIM)
DIM = [2, 12, 22, 32, 42, 52]
COV = [1, 2, 3, 4, 5, 7, 10, 20, 50, 100]
no_dim, no_cov = len(DIM), len(COV)
matrix = np.random.rand(no_dim, no_cov)
fig, ax = plt.subplots()
nuimshow(DIM, COV, matrix, ax, method='gouraud', alpha=0.1)
fig, ax = plt.subplots()
nuimshow(DIM, COV, matrix, ax, method='other', alpha=0.1)
А вот созданные изображения:
Как видите, существует много диагональных и вертикальных линий.
Это ошибка? Есть ли обходной путь?