numpy 向2D热图添加编号的轮廓线

00jrzges  于 2023-10-19  发布在  其他
关注(0)|答案(1)|浏览(111)

我想将带标签的等高线添加到2D热图。颜色表示数据的值,这些数据都是浮点数。灰色区域并不重要,因为其他原因,这些区域被设置为NaN。下面是我的代码来生成图表:

import seaborn as sns
import pandas as pd
from scipy import ndimage
from matplotlib import pyplot as plt

fig, ax = plt.subplots()
sns.set_theme(style='dark')
im = ax.imshow(data,cmap='turbo') 
cbar = ax.figure.colorbar(im, ax = ax,cmap='turbo')
cbar.ax.set_ylabel("Cost ($B)", rotation = -90, va = "bottom")
ax. grid(True)
ax.set_facecolor('dimgrey')

我试过使用Contour (iso-z) or threshold lines in seaborn heatmap,但这不起作用。
我试着看这个,Overlay contour plot on imshow,但我的数据是一个2D浮点数组,而不是单独的x,y,z值。

mkshixfv

mkshixfv1#

如果你愿意跳上一个高级的可视化包(plotly),而不是基本的matplotlib。这可能更容易实施。仅供参考

import plotly.graph_objects as go

feature_x = np.arange(0, 50, 2)
feature_y = np.arange(0, 50, 3)

# Creating 2-D grid of features
[X, Y] = np.meshgrid(feature_x, feature_y)

Z = np.cos(X / 2) + np.sin(Y / 4)

fig = go.Figure(data =
    go.Contour(
        x = feature_x, 
        y = feature_y, 
        z = Z, 
        contour=dict(
            start=1,
            end=5,
            size=.2, showlabels=True
            )))

fig.show()

相关问题