VectorPlot'ta VectorColorFunction'ı faza (büyüklük yerine) atama
ComplexPlotFonksiyonda kullanılan renk gibi (büyüklükleri yerine) veri noktalarının fazına / açısına rengi atayarak 2D vektörü çizmek istiyorum . Ancak, ComplexPlot dozu, kullanmak istediğim VectorMarker'a sahip değil ve veri noktalarının büyüklüğünü gösteriyor.
Bu benim sahip olduğum şey
VectorPlot[{x, y}, {x, -3, 3}, {y, -3, 3}, VectorMarkers -> "CircleArrow", VectorColorFunction -> Hue]
Ben de atamaya çalıştım VectorColorFunction -> ArcTan[y/x]ama bu işe yaramıyor.
========== @mikuszefski'nin önerilerinden sonra değişiklik ==============
Kodu şu şekilde değiştirdim VectorPlot[{x, y}, {x, -3, 3}, {y, -3, 3}, VectorMarkers -> "CircleArrow", VectorColorFunction -> (ColorData["Hue"][Arg[#3 + I #4]] &)]
Ancak, bir hata mesajı "ColorData :: notent: Hue, ColorData için bilinen bir varlık, sınıf veya etiket değil. Varlık listesi için ColorData [] kullanın."
Kullanılabilir bir "Gökkuşağı" renkli harita buldum
VectorPlot[{x, y}, {x, -3, 3}, {y, -3, 3}, VectorMarkers -> "CircleArrow", VectorColorFunction -> (ColorData["Rainbow"][Arg[#3 + I #4]] &)] İşte sonuç:
Ancak "Gökkuşağı", görüntü açılarına uygun döngüsel renk tablosu değildir. Her neyse, artık rengi açılara göre eşlemeye izin verdi (tanımlanmış bir işlev). Bir sonraki adım, sanırım ColorData'ya aktarılabilen gerçek bir Hue renk tablosu oluşturmaktır.
Yanıtlar
Dokümanlarınıza VectorColorFunctionbaktığınızda muhtemelen böyle bir şeye ihtiyacınız var
VectorColorFunction -> (ColorData["Rainbow", (Pi + Arg[#3 + I #4])/ (2 Pi) ]&)
VectorPlotOtomatik olarak 5 olmalıdır bağımsız değişkenler, geçer x, y, vx, vyve rörneğin, norm. Böylece, vektör bileşenlerinden karmaşık bir sayı oluşturan açıyı kolayca elde edebilirsiniz, yani 3 ve 4. argüman. Bu nedenle, uygun saf fonksiyonu sağlamanız gerekir. Belgelerdeki örneğin aksine, burada manuel olarak yeniden ölçeklendiriyorum.
Bilgi ... Şu anda Mathematica elimde olmadığı için cevabı test edemedim.
Güncelleme
Görünüşe göre bu Huegeçerli değil ColorData, bu yüzden yukarıdaki kodu olarak değiştirdim Rainbow. Baktığımızda ColorFunctiondocs olsun Huemuhtemelen okumalısınız
VectorColorFunction -> Function[ { x, y, v, w, r }, Hue[ (Pi + Arg[ v + I w ]) / (2 Pi) ] ]
eşdeğer olmalıdır
VectorColorFunction -> ( Hue[ (Pi + Arg[ #3 + I #4 ] ) / (2 Pi) ]& )