当绘制多个数据集时,在ListPlot中设置点颜色

时间:2012-01-15 03:37:26

标签: wolfram-mathematica

Windows 8.04版。

我注意到当我有2个数据集并对它们使用ListPlot时,显示的点在使用{{1}时不符合PlotStyle设置的线颜色本身所指定的颜色}。

我只是想知道我是不是在理解PlotStyle的含义。

以下是一个例子:

Joined->True

enter image description here

请注意,根据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}] 时,看看会发生什么:

Joined->True

enter image description here

现在顶行的,蓝色已经将颜色变为红色,这是底线点的颜色!。

这有意义吗?

解决此问题的一种方法是明确添加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

enter image description here

问题:为什么点在顶行将颜色变为红色(上面的第二个图)?并且有一个更简单的解决方案,我上面做了什么?

修改(1)

尝试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}}] 似乎也混合了一些东西:

MeshStyle -> {Red, Blue}

enter image description here

感谢

2 个答案:

答案 0 :(得分:4)

我认为Mesh->All正在弄乱事情。您可以指定MeshStyle,也可以将其关闭,然后设置PlotMarkers->Automatic

ListPlot[{data1,data2},PlotStyle->{Red,Blue},Joined->True,
 PlotMarkers->Automatic,AxesOrigin->{0,0}]

Mathematica graphics

答案 1 :(得分:0)

要获得简单的彩色点,而不改变其形状,并且不重复代码中的线条颜色,您可以像{}一样使用PlotMarkers

ListPlot[{data1, data2}, PlotStyle -> {Red, Blue}, Joined -> True, 
 PlotMarkers -> Graphics@{Point[{0, 0}]}, AxesOrigin -> {0, 0}]

output of the above command