2015-03-18 2 views
2

Я бегу этот код на Mac (OS X Yosemite 10.10.2)R: Участок легенда форматированием

par(bg = "transparent") 
with(FilteredDates, plot(DateTime, Sub_metering_1, xlab=NA, ylab="Energy Sub metering",lty=1, lwd=1, pch=".", type="n")) 
with(FilteredDates, lines(DateTime, Sub_metering_1,lty=1, lwd=1, pch=".")) 
with(FilteredDates, lines(DateTime, Sub_metering_2,lty=1, lwd=1, pch=".", col="red")) 
with(FilteredDates, lines(DateTime, Sub_metering_3,lty=1, lwd=1, pch=".", col="blue")) 
legend("topright", legend=c("Sub_metering_1","Sub_metering_2","Sub_metering_3"),cex=0.7, lty=1, col=c("black","red","blue")) 
dev.copy(png, file="plot3.png", width=480,height=480, type="quartz") 
dev.off() 

Как результат, мне нужен файл 480x480 квадрат PNG. Тип изображения по умолчанию - «кварц».

Но моя легенда не помещается в поле: my plot

Что я делаю не так?

ответ

1

Вы можете попробовать вручную установить аргумент text.widthlegend. Тем не менее, он должен автоматически по умолчанию использовать соответствующую длину, то есть длину самой длинной строки в аргументе legend. Я подозреваю, что это следствие использования dev.copy и в нем явно указывается ширина и высота.

Попытка непосредственно черчения в PNG устройства, используя следующие команды:

png("plot3b.png", width=480, height=480, type="quartz") 
par(bg = "transparent") 

plot(DateTime, Sub_metering_1, xlab=NA, ylab="Energy Sub metering",lty=1, lwd=1, pch=".", type="n") 
lines(DateTime, Sub_metering_1, lty=1, lwd=1, pch=".") 
lines(DateTime, Sub_metering_2, lty=1, lwd=1, pch=".", col="red") 
lines(DateTime, Sub_metering_3, lty=1, lwd=1, pch=".", col="blue") 
legend("topright", legend=c("Sub_metering_1","Sub_metering_2","Sub_metering_3"), cex=0.7, lty=1, col=c("black","red","blue")) 

dev.off() 
Смежные вопросы