Sulla base di Sjoerd, grande soluzione e l'estensione sul From Cartesian Plot to Polar Histogram using Mathematica, si prega di considerare quanto segue:Arctan categorizzazione, da Plot a istogramma, i trucchi
list = {{21, 16}, {16, 14}, {11, 11}, {11, 12},
{13, 15}, {18, 17}, {19, 11}, {17, 16}, {16, 19}}
ScreenCenter = {20, 15}
ListPolarPlot[{ArcTan[##], EuclideanDistance[##]} & @@@ (# - ScreenCenter & /@ list),
PolarAxes -> True, PolarGridLines -> Automatic, Joined -> False,
PolarTicks -> {"Degrees", Automatic},
BaseStyle -> {FontFamily -> "Arial", FontWeight -> Bold,
FontSize -> 12}, PlotStyle -> {Red, PointSize -> 0.02}]
Module[{Countz, maxScale, angleDivisions, dAng},
Countz = Reverse[BinCounts[[email protected][ArcTan[#[[1]] - ScreenCenter[[1]], #[[2]] -
ScreenCenter[[2]]] &, list, {1}], {-\[Pi], \[Pi], \[Pi]/6}]];
maxScale = 4;
angleDivisions = 12;
dAng = (2 \[Pi])/angleDivisions;
SectorChart[{ConstantArray[1, Length[Countz]], Countz}\[Transpose],
SectorOrigin -> {-\[Pi]/angleDivisions, "Counterclockwise"},
PolarAxes -> True,
PolarGridLines -> Automatic,
PolarTicks -> {Table[{i \[Degree] + \[Pi]/angleDivisions,i \[Degree]},
{i, 0, 345, 30}], Automatic},
ChartStyle -> {Directive[EdgeForm[{Black, Thickness[0.005]}], Red]},
BaseStyle -> {FontFamily -> "Arial", FontWeight -> Bold,
FontSize -> 12}, ImageSize -> 400]]
Come puoi vedere l'istogramma mostra una simmetria rotazionale di ciò che dovrebbe. Ho provato di tutto per ottenere quelle dritte ma non ci sono riuscito. Senza Reverse è peggio. Ho provato RotateRight senza successo. Sento che il problema è nel mio BinCount. Uscita ArcTan da -Pi a Pi mentre Sjoerd mi suggeriva di passare da 0 a 2Pi. Ma non capisco come farlo.
MODIFICA: problema risolto. Grazie a Sjoerd, Belisarius, soluzioni di Heike, sono in grado di mostrare un istogramma delle posizioni degli occhi fissi dato il centro di gravità di un'immagine.
@beliarius: Quando si utilizza 'ArcTan' nella forma' arctan [x, y] 'l'intervallo è' (-Pi, Pi) ' – Heike
@belisarius, Scusa, sono così fuori di testa ora :-(Grazie per il tuo aiuto! – 500
@ 500 Presta attenzione alla soluzione di Heike come sembra corrispondere meglio alle posizioni –