Wolfram mathematica 打印多个数据集时在ListPlot中设置点颜色
windows上的版本8.04 我注意到,当我有两个数据集并在其上使用Wolfram mathematica 打印多个数据集时在ListPlot中设置点颜色,wolfram-mathematica,Wolfram Mathematica,windows上的版本8.04 我注意到,当我有两个数据集并在其上使用ListPlot时,所显示的点不遵循PlotStyle设置在使用Joined->True时为线颜色本身指定的颜色 我只是想看看是不是我不理解这里PlotStyle的意思 以下是一个例子: data1 = {{1, 1}, {2, 1.5}, {3, 2}}; data2 = {{1, 1.5}, {2, 2.5}, {3, 3}}; ListPlot[{data1, data2}, PlotStyle -> {Red,
ListPlot
时,所显示的点不遵循PlotStyle
设置在使用Joined->True
时为线颜色本身指定的颜色
我只是想看看是不是我不理解这里PlotStyle的意思
以下是一个例子:
data1 = {{1, 1}, {2, 1.5}, {3, 2}};
data2 = {{1, 1.5}, {2, 2.5}, {3, 3}};
ListPlot[{data1, data2}, PlotStyle -> {Red, Blue}, Joined -> False,
Mesh -> All, AxesOrigin -> {0, 0}]
请注意,这些点已根据PlotStyle(红色然后蓝色)正确设置了颜色
现在,当我添加Joined->True
时,看看会发生什么:
data1 = {{1, 1}, {2, 1.5}, {3, 2}};
data2 = {{1, 1.5}, {2, 2.5}, {3, 3}};
ListPlot[{data1, data2}, PlotStyle -> {Red, Blue}, Joined -> True,
Mesh -> All, AxesOrigin -> {0, 0}]
现在,顶线上的点(蓝色)已更改为红色,这是底线上点的颜色
这有意义吗
克服此问题的一种方法是显式添加PlotMarkers
,为点提供颜色,如下所示:
data1 = {{1, 1}, {2, 1.5}, {3, 2}};
data2 = {{1, 1.5}, {2, 2.5}, {3, 3}};
ListPlot[{data1, data2}, PlotStyle -> {Red, Blue}, Joined -> True,
Mesh -> All, AxesOrigin -> {0, 0},
PlotMarkers -> {{Graphics[{Red, Point[{0, 0}]}],
12}, {Graphics[{Blue, Point[{0, 0}]}], 12}}]
问题:为什么点在顶行(上面的第二个图)中的颜色变为红色?有没有比我上面所做的更简单的解决方案
编辑(1)
尝试MeshStyle->{Red,Blue}
似乎也会混淆一些东西:
data1 = {{1, 1}, {2, 1.5}, {3, 2}};
data2 = {{1, 1.5}, {2, 2.5}, {3, 3}};
ListPlot[{data1, data2}, PlotStyle -> {Red, Blue}, Joined -> True,
AxesOrigin -> {0, 0}, Mesh -> All, MeshStyle -> {Red, Blue}]
谢谢我想是
Mesh->All
把事情搞砸了。您可以指定网格样式
,也可以将其关闭,然后设置绘图标记->自动
ListPlot[{data1,data2},PlotStyle->{Red,Blue},Joined->True,
PlotMarkers->Automatic,AxesOrigin->{0,0}]
要获得简单的彩色点,而不改变其形状,也不重复代码中线条的颜色,可以使用
绘图标记,如下所示:
ListPlot[{data1, data2}, PlotStyle -> {Red, Blue}, Joined -> True,
PlotMarkers -> Graphics@{Point[{0, 0}]}, AxesOrigin -> {0, 0}]
这不是答案,而是一种解释:网格有单独的样式。尝试将MeshStyle->Green
添加到绘图中,看看会发生什么。我不知道如何使用依赖于数据系列的网格点样式。谢谢。我尝试了MeshStyle->{Red,Blue},但没有效果。请查看编辑(1)中的屏幕截图,这将是无用的。所有样式都已应用,因此最后指定的颜色“获胜”。除非您的绘图非常复杂,PlotMarkers
是最佳选择。谢谢。这似乎是一个很好的解决办法。我使用了Mesh->All
,因为它在帮助中的一个示例中被用作与Joined->True
同时显示点和线的一种方式。从版本6开始,您可以使用ListLinePlot
而不是Joined
或PlotJoined
@Mr Wizard
和ListLinePlot
之间的区别是什么ListPlot[data,Joined->True
?Eli,据我回忆,它们是等效的,但我发现ListLinePlot
更干净,除非我打算来回切换。