Удаление линии с графика

Небольшой вопрос: я пытаюсь построить график в R, и я уже рассказал, как это сделать, но как удалить только что созданную строку? Например:

x <- c(1, 2, 4, 5, 6.7, 7, 8, 10 )
y <- c(40, 30, 10, 20, 53, 20, 10, 5)

plot(x,y,main="X vs Y", xlab="X", ylab="Y")

lines(x,y,col="black",lty="dotted") 

Это дает хороший график. Однако, скажем, я хотел бы удалить линию, которую я создал ранее (или, возможно, точки ?!), как мне это сделать?


person Clatty Cake    schedule 19.07.2012    source источник
comment
R использует модель «ручка + бумага» для построения графиков, поэтому, как только что-то нарисовано на устройстве, оно остается там, пока вы не начнете заново с пустым устройством.   -  person joran    schedule 20.07.2012
comment
есть уловки, такие как повторное рисование той же линии с цветом фона (lines(x,y,col="white",lty="dotted")), но они хрупкие (например, зависят от рисования на белом фоне и т. д.)   -  person Ben Bolker    schedule 20.07.2012
comment
Спасибо, Бен и Джоран. Эта модель ручка + бумага становится проблемой, если у меня есть два или более графиков на одном и том же графике, как повторное рисование белыми фишками битов другого графика. Неужели нет никакого способа обойти это?   -  person Clatty Cake    schedule 20.07.2012
comment
Все дело в организации кода. Структурируйте создание сюжета либо в автономном скрипте, либо в функции. Таким образом, вы можете внести изменения и легко перезапустить все это и перерисовать с нуля.   -  person joran    schedule 20.07.2012
comment
@ClattyCake Зачем нужно удалять строку?   -  person Ari B. Friedman    schedule 20.07.2012
comment
Привет, Ари, просто пытаюсь познакомиться с командами R. Я новичок в программировании, хотя и раньше делал osme, пока он не был на очень высоком уровне.   -  person Clatty Cake    schedule 21.07.2012
comment
возможный дубликат отрезка линии отмены графика R?   -  person baptiste    schedule 07.08.2012


Ответы (2)


Уловка стирания в базе R заключается в том, чтобы перерисовать все, кроме того, что вы хотите стереть в новом сюжете.

так что если вы:

plot(x,y,main="X vs Y", xlab="X", ylab="Y")
lines(x,y,col="black",lty="dotted") 

затем решите, что вам не нужна строка, тогда вы:

plot(x,y,main="X vs Y", xlab="X", ylab="Y")

Тогда, если вы хотите что-нибудь стереть, тогда вы

plot.new()
person Seth    schedule 06.08.2012

Чтобы удалить строку, вы просто удалите команду строки и повторно запустите остальные свои команды.

Вы должны думать о своем сюжете как о своем коде. Вы сохраняете код, потому что он даже более информативен в отношении сюжета, чем сам сюжет. Если у вас нет МНОГОЕГО, что нужно нарисовать в своем сюжете, относительно тривиально просто перерисовать все заново. Возможно, вам придется переделывать сюжет десятки раз, пока не получится именно то, что вам нужно. К вашему сведению, в глубине души это именно то, что делают некоторые графические программы на основе графического интерфейса, когда вы настраиваете что-то (зависит от того, что вы настраиваете). Таким образом, R не является чем-то особенным в этом смысле.

В качестве альтернативы, сохраните график как векторную графику (например, PDF), откройте в совместимой программе для рисования векторной графики (например, Illustrator) и настройте по своему усмотрению.

person John    schedule 06.08.2012