Изтриване на линия от графиката

Само бърз въпрос: Опитвам се да начертая графика в 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

За да изтриете ред, трябва само да изтриете командата за ред и да изпълните отново останалите си команди.

Трябва да мислите за своя сюжет като за свой код. Запазвате кода, защото е дори по-информативен за сюжета, отколкото за самия сюжет. Освен ако нямате МНОГО неща за начертаване в сюжета си, сравнително тривиално е просто да начертаете отново всичко. Може да се наложи да преначертаете десетки пъти, докато стане точно това, което искате. За информация, дълбоко в себе си, това е точно това, което правят някои GUI базирани графични програми, когато променяте неща (зависи какво променяте). Така че не е като R да е особено специално в този смисъл.

Като алтернатива можете да запишете графиката като векторна графика (т.е. PDF), да я отворите в съвместима програма за рисуване с векторна графика (т.е. Illustrator) и да коригирате според съдържанието на сърцата си.

person John    schedule 06.08.2012