Ярлыки оси Y отсутствуют? - PullRequest
0 голосов
/ 13 февраля 2020

График, над которым я работаю, работает нормально, но по какой-то причине метка оси Y не отображается. Любая помощь будет оценена.

Europe <- subset(data, continent == "Europe")
Americas<- subset(data, continent == "Americas")
Asia <- subset(data, continent == "Asia")

counts_europe <- table(Europe$decade)
counts_americas <- table(Americas$decade)
counts_asia <- table(Asia$decade)

plot(names(counts_europe), counts_europe , col = "blue", type = "l",
main = "Number of Assassinations by Decade", xlab = "Decade",
ylab = "Number of Assassinations", xlim = c(1875, 2005))

lines(names(counts_americas), counts_americas, col = "red", type = "l")
lines(names(counts_asia), counts_asia , col = "green", type = "l")

text(1935, 13, "Europe")
text(1935, 8, "Americas")
text(1935, 5, "Asia")

Ответы [ 2 ]

3 голосов
/ 14 февраля 2020

Это очень странная ситуация, в основном, у вас есть переменная x a character и переменная y a table, поэтому я думаю, что функция сюжета запуталась. Так, например:

set.seed(100)
counts_europe = table(sample(1880:1980,200,replace=TRUE))
class(names(counts_europe))
[1] "character"
plot(names(counts_europe),counts_europe,type="l")

enter image description here

Вам нужно указать оба значения нумерацией c, один из способов ниже:

res = cbind(year=as.numeric(names(counts_europe)),counts_europe)
plot(res,type="l")

enter image description here

1 голос
/ 14 февраля 2020

Я сделаю удар, так как у нас нет ваших данных.

Впереди, метки / галочки на оси Y обычно автоматические c.

Для большинства * Опции 1005 *, вы также можете включить их в вызове на plot и временно получить эффекты для этого экземпляра plot. Это верно здесь:

plot(1:3, 2:4, type='l', main='Quux', yaxt = 'n')

basic plot, no y-ticks

Однако, поскольку это временно, последующий вызов на plot без yaxt не переносит этот параметр.

Однако для многих включение этих дополнительных 8 символов (10+ с пробелами, запятая) является обременительным, поэтому мы можем установить этот параметр по умолчанию для всех последующих графиков на это конкретное графическое устройство :

par(yaxt = "n")
# any number of other plotting things going on here
plot(1:3, 2:4, type='l', main='Quux')

(тот же график, без отметок по оси Y.)

Существует два подхода к решению этой проблемы:

  1. Вручную сбросьте параметр с помощью par(yaxt = "s") (его значение по умолчанию). К сожалению, свойство сбрасывает только эти параметры ... поскольку вы уже знаете, что у вас есть один устаревший параметр, возможно, у вас есть другие, о которых вы не знаете.

  2. Закрыть графическое устройство и начать все сначала. Это легко сделать с помощью dev.off, хотя, пожалуйста, убедитесь, что вы закрываете правильное устройство (иногда я открываю несколько графиков, а закрываю неправильное ...).

    В базе R (где новый окно появляется для каждого устройства печати), оно отображается в заголовке окна, как в

    R graphic device window

    , и подтверждается программно на консоли:

    dev.list()
    # windows 
    #       2 
    dev.off(2)
    

    RStudio ничем не отличается, и хотя в его пользовательском интерфейсе нет номера устройства, можно найти:

    dev.list()
    # RStudioGD       png 
    #         2         3 
    dev.off(2)
    

    При вызове dev.off(2) графическая панель в пользовательском интерфейсе будет go пустым, после чего последующий график вернет его в исходное состояние (надеюсь, yaxt вернется к значению по умолчанию вместе с любыми другими значениями, которые могли измениться).

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