Mathematica画图的问题

由于写论文,使用了mathematica软件,从入门到写作,着实费了很多功夫,总结下自己遇到的问题,以后便于查看。

一 首先是书写函数问题

函数和MATLAB不一样,使用方括号"[]",而不是圆括号。
在进行求指数问题时,我总是会写成Exp()的形式,结果解出来的结果却还有Exp,我当时很纳闷,才明白过来。这点让我半天的代码白费了,这个和画图关系不大,可以暂时略过。

二 画图多个图怎么放在一个画布里以及散点图的问题

这个很简单,使用一个简单的函数就解决了。可以看例子:

Show[Plot[x^2, {x, 0, 3.5}], Plot[x^3, {x, 0, 3.5}]]

这里面使用了两个Plot函数,画两个图,然后放在show函数里面就可以了。当然也可以拆开写成如下形式:

p1=Plot[x^2, {x, 0, 3.5}];
p2=Plot[x^3, {x, 0, 3.5}];
Show[p1,p2]

两者的效果是一样的,其中 {x, 0, 3.5}表示坐标x的取值范围在0-3.5之间,我们输出的图片如下图所示。
两个图组合在一起
如果想画散点图,则也可以和散点图组合,组合的方式如下:

Show[Plot[x^2, {x, 0, 3.5}], Plot[x^3, {x, 0, 3.5}], ListPlot[{1, 4, 9}]]

散点图组合图
ListPlot[{1, 4, 9}]就是所要的散点图,但是这里默认的1,4,9三个值的坐标是(1,1),(2,4),(3,9),如果自己想重新定义坐标轴,不按照默认的来,则需要这样定义:

data = {{1, 2}, {2, 4}, {2, 6}};
ListPlot[data, PlotStyle -> {Red, PointSize[Large]}]

代码中data就是定义的坐标集,得出来的结果就是对应的坐标,结果如下图所示,为了明显我把坐标描红表示, PlotStyle -> {Red, PointSize[Large]}是我设计的显示样式,为红色大圆点。
散点图的画法
这个是组合图的基本画法以及散点图的个性化画法

三 如何设置坐标轴的范围

我们常常需要根据自己的要求设计x轴和y轴的范围,而mathmatica往往不会随着你的心思走,所以自己也可以调,主要为下:

p = x^2 + Sin[x] - 4;
Plot[p, {x, 0, 10}, PlotRange -> {0, 50}]

在上述代码中, {x, 0, 10}定义了x的取值范围, PlotRange -> {0, 50}定义了y的取值范围,则画图如下:
在这里插入图片描述

四 美化问题:线型、坐标轴比例、标签

1 线型问题
线型主要考虑线的颜色、粗细还有线的样式,这里都需要样式的问题,我直接上代码,可以慢慢体会:

p1 = x*2 - 10;
p2 = x + 2 - 10;
p3 = x^2 - 10;
p4 = x^3 - 10;
p5 = x^4 - 4;
b1 = Plot[p1, {x, 0, 50}, PlotRange -> {-3, 50}, PlotStyle -> {Black, Thin}];
b2 = Plot[p2, {x, 0, 50}, PlotRange -> {-3, 50},  PlotStyle -> {Blue, Dotted}];
b3 = Plot[p3, {x, 0, 50}, PlotRange -> {-3, 50}, PlotStyle -> {Red, DotDashed}]; 
b4 = Plot[p4, {x, 0, 50}, PlotRange -> {-3, 50}, PlotStyle -> {Green, Thick}];
b5 = Plot[p5, {x, 0, 50}, PlotRange -> {-3, 50}, PlotStyle -> {Orange, Dashed}];
Show[b1, b2, b3, b4, b5]

代码里我设置了五个函数,然后放在show函数里一起展示他们的图像,其中PlotStyle -> {Black, Thin}里的两个参数分别定义了线的颜色和线的类型,可以看一下具体的效果:
在这里插入图片描述
2 坐标轴比例问题
mathematica默认的坐标轴是扥比例的,如果不是的话,会根据取值范围调,当然如果自己不满意,也可以自己亲自去调,代码很简单如下:

SetOptions[Plot, AspectRatio -> 4]
Plot[2 Sin[x], {x, 0, 10}]

在代码中SetOptions[Plot, AspectRatio -> 4]可以绘制宽高比,AspectRatio -> 4即为宽高比,我们看一下更改比例后的图片如何:
宽高比
这里显示的是有些夸张了,是为了更加明显表达比例的使用。
3 标签
标签涉及到的问题有:

  • 坐标轴:x,y标签的大小问题,以及位置放置问题
  • 坐标轴刻度:刻度值大小、颜色的问题

首先把mathmatica的x,y轴位置放置、坐标轴刻度的问题放在一起讲,看代码:

Plot[3 Sin[x], {x, 0, 10},
 AxesLabel -> {x, y}, 
AxesStyle -> Directive[Gray, FontSize -> 30], 
TicksStyle -> Orange]

这里为了好理解,分段写了一下,AxesLabel -> {x, y}, 定义了坐标轴的标签名分别是x和y,当然自己也可以改,改成人数和成本,时间和效用都是可以的。
AxesStyle -> Directive[Gray, FontSize -> 30],定义了坐标轴标签的颜色和字体大小
TicksStyle -> Orange这里定义了坐标刻度的颜色,我们可以看一下结果:
在这里插入图片描述
当然有时候如果我们坐标的标签非常的长,我们不希望坐标轴标签放在坐标的两端,而是居中的位置,把坐标轴标签居中放置,需要使用到Frame的知识,但是使用它的时候,标签内部好像就不能显示了,这个我是亲身尝试过的,在这里整体演示一遍代码如下:

Plot[Sin[x], {x, 0, 10},
 Frame -> {{True, False}, {True, False}}, 
 FrameLabel -> {x, y},
  LabelStyle -> Directive[Red, Bold, 30]]

代码中定义了Frame和FrameLable两个变量,他们两个可以算是共生关系。
为何这么说呢,Frame意为边框,实则在定义的时候上下左右像相框一样把图形包起来,如果你不想要哪个相框,你就把它定义为False,在这里 {{True, False}, {True, False}}分别指{{下真,上假},{左真,右假}},所以是正常的x轴和y轴都有显示,而x,y就对应的是边框标签的值,这个标签和坐标轴标签不是一个意思,要区分开。显示的结果如下所示:
在这里插入图片描述
这里可以看到只有左边和下边有边框,上边和下边没有边框,边框分别显示了x和y的字样,是我们定义的。
也可以看一下如果四个框都显示出来的效果,先写代码:

Plot[Sin[x], {x, 0, 10}, Frame -> {{True, True}, {True, True}}, 
 FrameLabel -> {x, y}, LabelStyle -> Directive[Red, Bold, 30]]

在这里插入图片描述
可以看出来是有点小丑。

五 图例问题

画图时,如果遇到多条曲线相交的时候,每条图像的出现往往会让读者产生疑惑,此时需要对每一条加以解释,这时候需要加图例。加图例的代码也很简单,如下代码;

p1 = x*2 - 10;
p2 = x + 2 - 10;
p3 = x^2 - 10;
p4 = x^3 - 10;
p5 = x^4 - 4;
a1 = Plot[p1, {x, 0, 50}, PlotRange -> {-3, 50},  PlotStyle -> {Gray, Thin}, PlotLegends -> {"ONE"}];
a2 = Plot[p2, {x, 0, 50}, PlotRange -> {-3, 50}, PlotStyle -> {Gray, Dotted}, PlotLegends -> {"two"}];
a3 = Plot[p3, {x, 0, 50}, PlotRange -> {-3, 50},  PlotStyle -> {Gray, DotDashed}, PlotLegends -> {"three"}];
a4 = Plot[p4, {x, 0, 50}, PlotRange -> {-3, 50},  PlotStyle -> {Gray, Thick}, PlotLegends -> {"four"}];
a5 = Plot[p5, {x, 0, 50}, PlotRange -> {-3, 50}, PlotStyle -> {Gray, Dashed}, PlotLegends -> {"five"}];
Show[a1, a2, a3, a4, a5, AxesLabel -> {"time", "usage"}, TicksStyle -> Directive[Black, 12]]

在这里 PlotLegends -> {“five”}定义的就是图例,图例里面的字符串就是要说明的内容,我们看一下结果图:
在这里插入图片描述
在右方可以看到对每一条线都出现了解释,图例就生成了。
然而在生成图例的时候,mathematica默认图例不和图形在一起,就是如果输出为图片的话,图例是分开的部分,不会输出,这时候就需要把图例变成图像的一部分,我们需要进行如下的操作:

p1 = x*2 - 10;
p2 = x + 2 - 10;
p3 = x^2 - 10;
p4 = x^3 - 10;
p5 = x^4 - 4;
a1 = Plot[p1, {x, 0, 50}, PlotRange -> {-3, 50}, PlotStyle -> {Gray, Thin}, PlotLegends -> Placed[{"ONE"}, Riffle]];
a2 = Plot[p2, {x, 0, 50}, PlotRange -> {-3, 50}, PlotStyle -> {Gray, Dotted},  PlotLegends -> Placed[{"TWO"}, Riffle]];
a3 = Plot[p3, {x, 0, 50}, PlotRange -> {-3, 50},  PlotStyle -> {Gray, DotDashed},PlotLegends -> Placed[{"three"}, Riffle]];
a4 = Plot[p4, {x, 0, 50}, PlotRange -> {-3, 50}, PlotStyle -> {Gray, Thick},  PlotLegends -> Placed[{"four"}, Riffle]];
a5 = Plot[p5, {x, 0, 50}, PlotRange -> {-3, 50}, 
PlotStyle -> {Gray, Dashed},  PlotLegends -> Placed[{"five"}, Riffle]];
Show[a1, a2, a3, a4, a5, AxesLabel -> {"time", "usage"}, TicksStyle -> Directive[Black, 12]]

在这里插入图片描述
可以看到此时图例跑到图的里面去了,而代码只是在PlotLegends 后面使用了Placed函数,这个函数可以设置图例的放置方式,Riffle是指交互插入,如果设置成Top、Center、Right、Left也是可以的,这时好像就不是在图形里面了,可以自己尝试一下。

六 分段函数

这个比较简单,和MATLAB很像,所以直接上代码,可以自己慢慢体会。

y = If[x >= 0, x - 1, x^2];
Plot[y, {x, -5, 5}]

对应的图形为:
在这里插入图片描述
当然也可以使用多个If语句进行嵌套,这个就很容易了。
暂时就说这么多吧,希望对读者也有帮助吧。

  • 44
    点赞
  • 213
    收藏
    觉得还不错? 一键收藏
  • 10
    评论
### 回答1: Wolfram Mathematica是一款强大的数学软件,可以用来绘制各种图形。它支持多种绘图函数和图形类型,包括二维和三维图形、曲线、散点图、柱状图、饼图等等。用户可以使用内置函数或自定义函数来绘制图形,并可以对图形进行各种调整和美化。Wolfram Mathematica还支持交互式绘图,用户可以通过鼠标或键盘操作来实时调整图形。总之,Wolfram Mathematica是一款非常强大的画图工具,可以满足各种绘图需求。 ### 回答2: Wolfram Mathematica是一种功能强大的数学软件,具有绘制图形的能力。通过使用Mathematica,我们能够生成各种类型的图形,包括函数图像、数据图表和复杂的绘图。 首先,我们可以使用Mathematica来绘制函数图像。通过输入函数的表达式,我们可以得到函数的图像。例如,输入"Plot[x^2, {x, -5, 5}]",就可以得到一个以x为自变量,y为因变量的二次函数图像。我们可以通过调整输入表达式中的参数,如函数的系数和变量范围,来获得不同的图像效果。 其次,Mathematica还可以用于绘制数据图表。我们可以将数据输入到Mathematica中,然后使用不同的绘图函数来创建各种类型的图表,如柱状图、折线图和饼图。通过调整参数和样式选项,我们可以自定义图表的外观和布局。 最后,Mathematica还支持绘制复杂的绘图,如曲面图、三维图和动画图。通过使用相关的绘图函数和选项,我们可以呈现出更加复杂和丰富的图像效果。例如,使用"Plot3D[Sin[x + y^2], {x, -Pi, Pi}, {y, -Pi, Pi}]",我们可以绘制出一个包含正弦函数的三维曲面图。 总之,通过使用Wolfram Mathematica,我们可以方便地绘制各种类型的图形。不论是函数图像、数据图表还是复杂的绘图,Mathematica都提供了丰富的函数和选项,使我们能够轻松地创建出令人满意的图像效果。 ### 回答3: Wolfram Mathematica是一套功能强大的数学软件,可以用于绘制各种类型的图形。它具有强大的绘图功能,在数学、统计学、物理学等领域都得到广泛应用。 要使用Wolfram Mathematica画图,首先需要打开软件并创建一个新的绘图窗口。可以通过点击工具栏上的"新建"按钮或使用相关的快捷键来创建一个新的绘图窗口。 在新的绘图窗口中,可以使用不同的绘图函数来绘制各种类型的图形。例如,可以使用Plot函数来绘制函数的图像。只需输入要绘制的函数,指定绘图范围和其他参数,然后点击运行按钮即可生成图形。 另一个常用的绘图函数是ListPlot,可以用于绘制离散数据的散点图。只需输入数据点坐标,然后点击运行按钮即可生成相应的图形。 除了这些基本的绘图函数之外,Wolfram Mathematica还提供了许多其他类型的绘图函数,可以用于绘制二维和三维图形、曲线、图表等。用户可以按照自己的需求选择合适的函数来完成绘图任务。 在绘图过程中,用户还可以对图形进行进一步的调整和修改。可以修改坐标轴范围和标记、添加图例、调整线条的颜色和类型等。Wolfram Mathematica提供了丰富的选项和命令,用户可以根据自己的需求进行自定义。 总之,通过Wolfram Mathematica可以轻松绘制各种类型的图形。它具有强大的绘图功能和丰富的选项,让用户能够方便地制作出美观、精确的图形。无论是学术研究还是工程设计,绘图都是不可或缺的一部分,而Wolfram Mathematica可以成为您的有力助手。
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值