установка цвета точки в ListPlot при построении нескольких наборов данных - PullRequest
4 голосов
/ 15 января 2012

Версия 8.04 для Windows.

Я заметил, что когда у меня есть 2 набора данных и я использую 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}]

enter image description here

Обратите внимание, что цвета точек установлены правильно в соответствии с 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}]

enter image description here

Теперь точек в верхней строке, которые синего цвета, изменили цвет на красный, который является цветом точек нижней линии!.

Имеет ли это смысл?

Одним из способов преодоления этого является явное добавление 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}}]

enter image description here

Вопрос: Почему точки меняют цвет на красный в верхней строке (второй график выше)? и есть ли более простое решение, чем то, что я сделал выше?

редактировать (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}]

enter image description here

спасибо

Ответы [ 2 ]

4 голосов
/ 15 января 2012

Я думаю, что это Mesh->All, что все портит. Вы можете либо указать MeshStyle, либо просто оставить его выключенным, и установить PlotMarkers->Automatic.

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

Mathematica graphics

0 голосов
/ 09 февраля 2018

Чтобы получить просто цветные точки, не меняя их форму и не повторяя цвета линий в коде, вы можете использовать PlotMarkers как здесь:

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

output of the above command

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...