在任何Mathematica图表或绘图中,如何在y轴上显示%值?
我可能有这样的数据:
data = {{{2010, 8, 3}, 0.}, {{2010, 8, 31}, -0.052208}, {{2010, 9, 30},
0.008221}, {{2010, 10, 29}, 0.133203}, {{2010, 11, 30},
0.044557}, {{2010, 12, 31}, 0.164891}, {{2011, 1, 31},
0.055141}, {{2011, 2, 28}, 0.114801}, {{2011, 3, 31},
0.170501}, {{2011, 4, 29}, 0.347566}, {{2011, 5, 31},
0.461358}, {{2011, 6, 30}, 0.244649}, {{2011, 7, 29},
0.41939}, {{2011, 8, 31}, 0.589874}, {{2011, 9, 30},
0.444151}, {{2011, 10, 31}, 0.549095}, {{2011, 11, 30}, 0.539669}};
DateListPlot@data
我只想让y轴的范围从0%到60%,而不是0.0到0.6。
答案 0 :(得分:8)
使用FrameTicks -> {{left, right},{bottom, up}}
DateListPlot[data,
FrameTicks -> {{{{0.0, "0%"}, {0.1, "10%"}, {0.2, "20%"},
{0.3, "30%"}, {0.4, "40%"}, {0.5, "50%"},
{0.6, "60%"}}, None},
{Automatic, None}}]
可以生成FrameTicks
的表格,例如,
Table[{k/10., ToString@(10 k) <> "%"}, {k, 6}]
(* Out[10] := {{0.1, "10%"}, {0.2, "20%"}, {0.3, "30%"}, {0.4, "40%"}, {0.5, "50%"}, {0.6, "60%"}} *)
如果你需要制作很多数字,那就是LevelScheme,这是一个免费的软件包,它可以让Mathematica中的好图形变得更加容易,尤其是当它出现在刻度线上时。
编辑:根据Jagra的建议,这里有一个函数,它根据数据集和所需的滴答步骤制作一个滴答规范列表。假设数据结构始终是相同的。
ticks[step_, data_] := {{Table[{k, ToString@IntegerPart@(100 k) <> "%"},
{k,
Floor[Min@data[[All, 2]], step],
Ceiling[Max@data[[All, 2]], step],
step}], None},
{Automatic, None}};
现在您可以定义绘图功能
plot = DateListPlot[#, FrameTicks -> ticks[.1, #]] &
并像plot@data
最后,由于您的问题指定任何 Mathematica图,请记住FrameTicks
仅适用于框架图,其他图使用Ticks -> {{x ticks},{y ticks}}
。
答案 1 :(得分:6)
您可以尝试摆弄FrameTicks
:
答案 2 :(得分:5)
假设您的y轴值以比率给出,并且您希望它们为百分比,那么最简单的解决方案是:
DateListPlot[{#1, 100 #2} & @@@ data]
答案 3 :(得分:-1)
我没有看到图形选项,这种可能性,但您可以创建一个中间函数,将您的数字转换为右侧。您将显示此功能的图表。这可以很容易地完成。 祝你好运!