Я пытаюсь создать график с очень редкими данными без интерполяции.Я хотел бы создать что-то вроде этого

Другими словами, я хотел бы создать «гибрид scatterplot / countourplot».Возможно ли это в matplotlib?Если так, то как?Должен ли я использовать countourf () или scatterplot ()?Или что-то совсем другое?
Я создал пример набора данных ниже.
Большое спасибо!
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
In [1]:
d = {'col1': [0, 0, 0, 0, 0], 'col2': [0, 0.1, 0, 0, 0], 'col3': [0, 0.9, 0, 0, 0],
'col4': [0, 0, 0, 0.3, 0], 'col5': [0, 0, 0, 0, 0]}
df = pd.DataFrame(data=d)
df = df.replace(0, np.nan)
Out [1]:
col1 col2 col3 col4 col5
0 NaN NaN NaN NaN NaN
1 NaN 0.1 0.9 NaN NaN
2 NaN NaN NaN NaN NaN
3 NaN NaN NaN 0.3 NaN
4 NaN NaN NaN NaN NaN
построение с контуром ():
y = df.index.values
x = df.columns.values
z = df
fig1 = plt.contourf(x, y, z)