Re: coordinates in LogLogPlots
- To: mathgroup at smc.vnet.net
- Subject: [mg112149] Re: coordinates in LogLogPlots
- From: "David Park" <djmpark at comcast.net>
- Date: Thu, 2 Sep 2010 02:31:22 -0400 (EDT)
Alessandro, The main confusion arises because the underlying plot coordinates are in natural Log, but the tick labeling is in Log base 10. Here is a plot done using Presentations. It wasn't clear to me where you actually wanted the Disk so I just put it near the curve and near the center. I used a number formatting routine for simple labels on the x ticks. In CustomTicks and CustomGridLines we have to specify the transformation from label values to the underlying coordinates. Needs["Presentations`Master`"] nformat[n_] := Which[ 1 <= n < 10^2, n, 10^-2 < n < 1, N[n], True, Superscript[10, Log[10, n]]] xticks = CustomTicks[Log, {1, 6, {1}, Range[2, 9]}, CTNumberFunction -> nformat]; yticks = CustomTicks[Log, {0, 2, {1, 2, 5}, {3, 4, 6, 7, 8, 9}}]; xgrid = CustomGridLines[Log, {1, 6, Range[9]}, {LightGray}]; ygrid = CustomGridLines[Log, {0, 2, Range[9]}, {LightGray}]; Draw2D[ {LogLogDraw[700/x^0.4`, {x, 100, 10^6}], {Orange, Disk[Log[{1000, 10}], Scaled[0.05]]}, Text[Style["Curve", 14, Bold], Log[{10^4, 20}], {-1, 0}], Text[Style["Disk", 14, Bold], Log[{2000, 8}], {-1, 0}]}, AspectRatio -> 1, PlotRange -> {Log[{10, 10^6}], Log[{1, 100}]}, Frame -> True, FrameTicks -> {{yticks, yticks // NoTickLabels}, {xticks, xticks // NoTickLabels}}, GridLines -> {xgrid, ygrid}] It is generally better to directly label objects in a graphic, if you can, but here is a legend version of the graphic if you want that. xticks = CustomTicks[Log, {1, 6, {1}, Range[2, 9]}, CTNumberFunction -> nformat]; yticks = CustomTicks[Log, {0, 2, {1, 2, 5}, {3, 4, 6, 7, 8, 9}}]; xgrid = CustomGridLines[Log, {1, 6, Range[9]}, {LightGray}]; ygrid = CustomGridLines[Log, {0, 2, Range[9]}, {LightGray}]; ShowLegend[ Draw2D[ {LogLogDraw[700/x^0.4`, {x, 100, 10^6}], {Orange, Disk[Log[{1000, 10}], Scaled[0.05]]}, Text[Style["Curve", 14, Bold], Log[{10^4, 20}], {-1, 0}], Text[Style["Disk", 14, Bold], Log[{2000, 8}], {-1, 0}]}, AspectRatio -> 1, PlotRange -> {Log[{10, 10^6}], Log[{1, 100}]}, Frame -> True, FrameTicks -> {{yticks, yticks // NoTickLabels}, {xticks, xticks // NoTickLabels}}, GridLines -> {xgrid, ygrid}], {{{Graphics[{Black, Thick, Line[{{0, 0}, {3, 0}}]}], "The Curve"}}, LegendPosition -> {-.8, -.8}, LegendSize -> {0.7, 0.2}, LegendTextOffset -> {-0.4, 0}, LegendSpacing -> 0.6}] The Presentations application has tutorials on making custom log plots, and also on using, and not using, legends. David Park djmpark at comcast.net http://home.comcast.net/~djmpark/ From: Alessandro [mailto:alexxx.magni at gmail.com] my fault without doubt, I keep on banging my head against the surreal coordinate usage in Mathematica. Currently I am trying to place a Disk[] in the Epilog section of a LogLogPlot - using as disk coordinates the plot coordinates - and I see that it doesnt work, I dont know why. Show[LogLogPlot[700*x^-0.4, {x, 100, 10^6}, Frame -> True, PlotRange - > {{10, 10^6}, {1, 100}}, Epilog -> {Disk[{3,4.2},0.1]}] Since it seems to me that also the Legend system is broken in Log plots, do you know if this is also true in this case? thanks! alessandro