В полном раскрытии я задал похожий - но другой - вопрос о построении графиков в логарифмическом режиме без ограничения базовой функцией c R и использования временных рядов.
Мне удалось получить Почти то, что я после, но в журнале базы 10. Мне нужна база 2. Вот код как:
require(RCurl)
require(foreign)
require(tidyverse)
x = getURL("https://raw.githubusercontent.com/CSSEGISandData/COVID-19/master/csse_covid_19_data/csse_covid_19_time_series/time_series_19-covid-Confirmed.csv")
corona = read.csv(text = x, sep =",",header = T)
corona <- corona %>%
pivot_longer(cols = -c(`Province.State`, `Country.Region`, Lat, Long),
names_to = "date",
values_to = "cases")
corona <- corona[,c("Country.Region","date","cases")]
corona <- corona[!is.na(corona$cases), ]
Spain <- corona[corona$Country.Region=='Spain',]
Spain <- Spain[Spain$cases>1,]
startDate <- as.Date("2020-02-09")
xm <- seq(startDate, by="1 day", length.out=nrow(Spain))
#plot(Spain$cases~xm, type='l', ylab="No. Cov-19 cases", xlab='', lwd=3, col=2,
# main = "No. Cov-19 in Spain")
Italy <- corona[corona$Country.Region=='Italy',]
Italy <- Italy[(nrow(Italy)-nrow(Spain)+1):nrow(Italy),]
plot(Italy$cases~xm, type='l', ylab="No. Cov-19 cases", xlab='', lwd=3,
log="y", col=2, las=2,
main = "No. Cov-19 in Italy (red) v Spain (blue)")
lines(Spain$cases~xm, type='l', ylab="No. Cov-19 cases", xlab='', lwd=3, col=4)
Вот график, который я хочу получить, но с самыми последними данными , который устанавливает максимальное количество дел на момент написания в 17 660, а даты на оси х:
![enter image description here](https://i.stack.imgur.com/8cBe1.png)
Комбинация из оба ответа:
require(RCurl)
require(foreign)
require(tidyverse) # To tip the df from long row of dates to cols (pivot_longer())
x = getURL("https://raw.githubusercontent.com/CSSEGISandData/COVID-19/master/csse_covid_19_data/csse_covid_19_time_series/time_series_19-covid-Confirmed.csv")
corona = (read_csv(x)
%>% pivot_longer(cols = -c(`Province/State`, `Country/Region`, Lat, Long),
names_to = "date",
values_to = "cases")
%>% select(`Country/Region`, date, cases)
%>% mutate(date=as.Date(date,format="%m/%d/%y"))
%>% drop_na(cases)
%>% rename(country="Country/Region")
)
cc <- (corona
%>% filter(country %in% c("Italy","Spain", "Korea, South"))
)
ccw <- (cc
%>% pivot_wider(names_from="country",values_from="cases")
%>% filter(cumsum(Italy>0 | Spain>0)>=5)
)
plot(ccw$date, ccw$Italy, type="l", lwd=3,
ylab='',
xlab='',
log='y',
col=5,
axes=FALSE,
main = "Log-lin cumulative COVID-19 cases in Italy and Spain v South Korea",
cex.main=0.9)
at1 <- seq(min(ccw$date), max(ccw$date)+1, by=3);
axis.Date(1, at=at1, format="%b %d", las=2, cex.axis=0.7)
at2 <- 2^seq(1,30,by=1)
axis(side=2, at2, cex.axis=0.7)
abline(h=at2, lty=2, col="grey90") # Add faint grid lines
lines(ccw$date, ccw$`Korea, South`, lwd=3, col=4, lty=3)
lines(ccw$date, ccw$Spain, lwd=3, col=2)
legend(ccw$date[1], 15000, legend=c("Korea", "Italy", "Spain"),
col=c(4, 5, 2), lty=c(3,1,1), lwd=3, cex=0.8,
box.lty=0)
![enter image description here](https://i.stack.imgur.com/wkF3S.png)