Plotlegend के साथ मुद्दे

Dec 04 2020

मैं फ़ंक्शन एन 1 का 3 डी प्लॉट बना रहा हूं और मैं इसके रंग को नीचे sz1 फ़ंक्शन के लिए जिम्मेदार ठहरा रहा हूं, जिसमें -1 से 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}
]

जैसा कि हम देख सकते हैं, रंग फ़ंक्शन का जवाब दे रहा है sz1। हालांकि, रंग की ढाल रैखिक नहीं लगता है, क्योंकि मेरी किंवदंती के साथ एक मुद्दा है। क्या लीजेंड के रंग को रेखीय रूप से 1 से 1 तक बदलने का कोई तरीका है?

यदि हम साजिश sz1करते हैं तो हम देखते हैं कि यह सम्मान के साथ विषम है$\delta$ एक निश्चित कश्मीर के लिए,

Plot3D[{sz1[δ, g1, g2, k]}, {δ, -2, 2}, {k, 0, 2}, AxesLabel -> {"δ", "k"}]

हालाँकि, रंग के संबंध में 3D प्लॉट का Re[En1]रंग विषम नहीं है। क्या आपको इसकी कोई वजह नजर आती है?

जवाब

3 tad Dec 04 2020 at 11:45

आप किंवदंती में रंग समारोह को स्पष्ट रूप से देख सकते हैं:

BarLegend[{ColorData["TemperatureMap"][Rescale[#, {-1, 1}]] &, {-1, 1}}]

इसके बिना, ऐसा प्रतीत होता है कि किंवदंती रंग फ़ंक्शन के लिए डिफ़ॉल्ट रेंज 0 से 1 का उपयोग करती है। तो शून्य से नीचे के मूल्यों को शून्य के अनुरूप रंग से जोड़ दिया जाता है।

अपने संशोधित प्रश्न को हल करने के लिए, आप प्लॉट में रंग फ़ंक्शन को भी पुनर्विक्रय कर सकते हैं:

ColorFunction -> Function[{\[Delta], k, z},
   ColorData["TemperatureMap"][Rescale[sz1[\[Delta], g1, g2, k], {-1, 1}]]
] 

व्यूप्वाइंट सेट करना -> रंग भिन्नता को स्पष्ट रूप से दिखाने के लिए शीर्ष:

PS, En1 की आपकी परिभाषा में एक टाइपो है: अंतिम कारक में मुझे लगता है कि आप I और डेल्टा के बीच एक स्थान रखना चाहते हैं।