Problemas com Plotlegend
Estou fazendo um gráfico 3D da função En1 e atribuindo sua cor à função sz1 abaixo, que contém valores que vão de -1 a 1.
En1[δ_, g1_, g2_, k_] := 1/2(-I g1 + I g2 -Sqrt[-(g1 + g2 - 2 k + I δ) (g1 + g2 + 2 k + Iδ)] + δ)
vec1[δ_, g1_, g2_,k_] := {{-((I g1 + I g2 + Sqrt[-(g1 + g2 - 2 k + I δ) (g1 + g2 + 2 k + I δ)] - δ)/1), 2 k}}
vec1d[δ_, g1_, g2_,k_] := {{(I g1 + I g2 - Sqrt[-(g1 + g2 - 2 k - I δ) (g1 + g2 + 2 k - I δ)] + δ)/1, 2 k}}
σz = PauliMatrix[3];
σ0 = IdentityMatrix[2];
sz1[δ_, g1_, g2_, k_] := Flatten[vec1d[δ, g1, g2, k]. σz . Transpose[vec1[δ, g1, g2, k]]][[1]]/Flatten[vec1d[δ, g1, g2, k].Transpose[vec1[δ, g1, g2, k]]][[1]]
g1 = 1; g2 = 1;
Plot3D[
{Re[En1[δ, g1, g2, k]]},
{δ, -2, 2}, {k, 0, 2},
ColorFunction -> Function[{δ, k, z}, ColorData["TemperatureMap"][sz1[δ, g1, g2, k]]],
ColorFunctionScaling -> False,
PlotLegends -> BarLegend[{ColorData["TemperatureMap"], {-1, 1}}],
BoxRatios -> {1, 1, 1}
]

Como podemos ver, a cor está respondendo à função sz1
. No entanto, há um problema com minha legenda, pois o gradiente de cor parece não linear. Existe uma maneira de impor a cor da legenda para variar linearmente de -1 a 1?
Se traçarmos sz1
, vemos que é estranho em relação ao$\delta$ para um k fixo, ou seja,
Plot3D[{sz1[δ, g1, g2, k]}, {δ, -2, 2}, {k, 0, 2}, AxesLabel -> {"δ", "k"}]

No entanto, a cor do gráfico 3D de Re[En1]
não é estranha em relação à cor. Você vê algum motivo para isso?
Respostas
Você pode redimensionar explicitamente a função de cor na legenda:
BarLegend[{ColorData["TemperatureMap"][Rescale[#, {-1, 1}]] &, {-1, 1}}]
Sem isso, parece que a legenda usa o intervalo padrão de 0 a 1 para a função de cor. Portanto, os valores abaixo de zero são recortados para a cor correspondente a zero.
Para responder à sua questão revisada, você também pode redimensionar a função de cor no gráfico:
ColorFunction -> Function[{\[Delta], k, z},
ColorData["TemperatureMap"][Rescale[sz1[\[Delta], g1, g2, k], {-1, 1}]]
]
Definir o ViewPoint -> Top para mostrar mais claramente a variação de cor dá:

ps, há um erro de digitação na sua definição de En1: no último fator acho que você pretende ter um espaço entre I e delta.