文章目录(Table of Contents)
起因
这个问题来源于当时我在知乎上一个回答下面的评论,我觉得下面的回答很是不错,想在这里说一下。
其实这个在实际应用中还是很常用的,对于写论文很有帮助,可以把论文上的图画得很好看。
一些其他的对绘图有帮助的文章:之后相关的文章都会放在Mathematica绘图这个板块,方便我自己的查阅。
下面是这个系列的其他文章:
问题的来源是由于mathematica画出的座标的x和y在座标轴的正上方和正前方,可以看下面的代码和其画出的图像。
- Plot[{(0.5)^x}, {x, -1, 4},
- PlotStyle -> Directive[AbsoluteThickness[1.975]],
- AxesStyle -> Arrowheads[{0., 0.03}],
- AxesLabel -> {Style["x", Italic, 12, FontFamily -> "Times"],
- Style["y", Italic, 12, FontFamily -> "Times"]},
- AxesOrigin -> {0, 0}]
但实际上我们需要让x和y稍微偏一点,下面就来讲一下如何来实现。
绘制标准座标轴
方法一--使用\n与\t
这种方法的原理就是使用\n(换行)和\t(制表符),相当于把x和\n看出一个整体,把y和\t看成一个整体
- Plot[{(0.5)^x}, {x, -1, 4},
- PlotStyle -> Directive[AbsoluteThickness[1.975]],
- AxesStyle -> Arrowheads[{0., 0.03}],
- AxesOrigin -> {0, 0},
- AxesLabel -> {Style[Row[{"\n", x}], 14, FontFamily -> "Times"],
- Style[Row[{y, "\t"}], 14, FontFamily -> "Times"]}
- ]
但是他的缺点就是灵活度不够高
方法二--使用Epilog
这种方法相比上一种灵活度更高,但是缺点就是需要自己调整参数。因为灵活度高所以需要调整参数。总之是有利有弊。
- Plot[{(0.5)^x}, {x, -1, 4},
- PlotStyle -> Directive[AbsoluteThickness[1.975]],
- AxesStyle -> Arrowheads[{0., 0.03}],
- AxesOrigin -> {0, 0},
- Epilog -> {Text[Style[x, 12, FontFamily -> "Times"],
- Scaled[{0.99, .03}]],
- Text[Style[y, 12, FontFamily -> "Times"], Scaled[{0.23, 0.98}]]},
- PlotRangePadding -> Scaled[.1]]
方法三--使用Plot(Plot3D)和Graphics(Graphics3D)结合
这种方法也是灵活度较高,但是需要改得参数较多。
- f[x_] := (.5)^x
- p = Plot[{f[x]}, {x, -1, 4},
- PlotStyle -> Directive[AbsoluteThickness[1.975]],
- AxesStyle -> Arrowheads[{0, 0.03}],
- AxesOrigin -> {0, 0}];
- pAxesLabel =
- Graphics[{Text[
- Style["x", Italic, 12, FontFamily -> "Times"], {4.1, -.2}],
- Text[Style["y", Italic, 12, FontFamily -> "Times"], {-.2, 2}]}];
- Show[p, pAxesLabel, PlotRange -> All]
这个方法就不给出图像了,画出来也和上面的是一样的,大家可以自己去试一下。
以上就是使用mathematica来绘制标准座标轴的一些方法,每个方法都有自己的优缺点,大家自己把按照自己的使用习惯使用即可。
- 微信公众号
- 关注微信公众号
- QQ群
- 我们的QQ群号
评论