我有一个ListPointPlot3D
图,所有三个轴都包含数据点的对数分布。
像这样:
..... . . . . . .
如何强制Mathematica使轴的刻度成对数,以便我得到数据点的线性分布?
由于
答案 0 :(得分:7)
AFAIK没有LogLogLogPlot,所以接下来最好的方法是获取数据的日志并绘制这些日志。然后,您必须提出自己的Ticks
。
粗略版本:
tks = {1, 2, 5, 10, 20, 50, 100, 200, 500, 1000, 2000, 5000, 10000};
list = 10^RandomReal[{0, 4}, {100, 3}]
ListPointPlot3D[Log[10, list]},
Ticks ->
{
{Log[10, tks], tks}\[Transpose],
{Log[10, tks], tks}\[Transpose],
{Log[10, tks], tks}\[Transpose]
},
BoxRatios -> 1, PlotStyle -> PointSize -> 0.02
]
Ticks
有更多可能来美化你的规模。我相信你会找到通往location in the manual的路。
答案 1 :(得分:0)
如果您愿意以BubbleChart3D
(具有恒定的气泡大小,我猜)重新绘制您的绘图,您可以使用ScalingFunctions
(documentation)选项将轴重新缩放到日志表格。它还可用于以对数刻度以外的方式缩放轴。由于您使用的是ListPointPlot3D
,因此您可能还需要重新排列输入数据。
这是Mathematica中“绘图”和“绘图”之间令人讨厌的区别之一。据我所知,ScalingFunction
选项仅适用于“图表”(财务,条形图和气泡图),而不适用于ListPlot
或ListPlot3D
等字符。