Closed nastja88 closed 7 years ago
Problem je v tem, da je stolpec drzava
faktor, tako da ga bo potrebno pretvoriti v nize. Namesto slovar[drzava]
torej uporabi slovar[parse_character(drzava)]
. Da spremeniš naslov legende, grafu prištej še guides(color = guide_legend(title = "Država"))
.
Mimogrede, opažam, da si iz repozitorija pobrisala datoteke .Rproj
, kar pomeni, da projekta kot takega več ne bo mogoče odpreti v RStudiu. Prosim te, da vsaj eno od teh datotek vrneš - lahko jo skopiraš kar iz vzorčnega repozitorija, ali pa v RStudiu klikni desno zgoraj, izberi New Project..., nato pa Existing Directory in najdi mapo, kjer imaš svoj projekt. To bo ustvarilo novo datoteko .Rproj
, ki jo vključi v commit (pri tem se prepričaj, da imaš pod Tools / Project Options... / Code Editing / Text encoding izbrano UTF-8).
Še nekaj: opažam, da je stolpec leto
v razpredelnici bolezni
faktor, zato se na grafu prikažejo vsa leta ne glede na prostor, ki je na voljo. Da se temu izogneš, opravi pretvorbo v števila (parse_number
) stolpcev leto
v razpredelnicah worldbank
in alkohol
, potem ko ju pretvoriš z melt
.
Hvala, sem popravila.
Je to z datoteko .Rproj
sedaj vredu?
Sedaj pa mi v poročilu izriše prazen prvi graf.
Zanima me še, kaj pomeni tole opozorilo:
Warning messages: 1: In postDraw.grob(x) : reached elapsed time limit
Datoteka .Rproj
je v redu.
Sedaj, ko si pri alkoholu leta pretvorila v števila, dodatna obdelava razpredelnice alko
(na koncu vizualizacija.r
) ni več potrebna. Lahko torej pobrišeš vrstici, kjer urejaš razpredelnico alko
in leta pretvarjaš v števila, pa se bo graf izrisal.
Glede opozorila nisem prepričan, očitno pa je izrisovanje nekega grafa (verjetno zemljevida) trajalo predolgo. Ali ti to vsakič izpiše?
Aha hvala.
Ne, samo takrat mi je.
Sedaj imam težavo s shiny-em. Če spremenim leto, mi ne posodobi zemljevida. Dodala sem gumb, s katerim potrdiš izbiro preden ti ponovno posodobi zemljevid, vendar ne vem kako ga naj potem uporabim v datoteki server.R.
Za leto uporabljaš spremenljivko n
, ki pa je nikjer ne definiraš (pravzaprav ima dplyr
svojo funkcijo n
). Da ti bo filtriralo po letu, jo nadomesti z input$leto
. Gumba Potrdi niti ne potrebuješ, saj se bo zemljevid osvežil takoj, ko zamenjaš izbiro, od katere je odvisen.
Hvala, sem popravila.
Zanima me, kako dodam povezavo v shiny-ju. Pri vsaki bolezni imam namreč še kratek opis in bi rada dodala vir. Poskusila sem dodati besedilo in nato uporabiti a(href=link, "Povzeto po"), vendar ne deluje.
Poleg tega še ne vem, zakaj mi v nizu pri opisih bolezni ne upošteva znakov za novo vrstico oz. kako naj to popravim.
Ker je a
že Shinyjev gradnik, ga ne moreš uporabiti v textOutput
. Namesto tega v server.R
pri output$povezava
nadomesto renderText
z renderUI
, v ui.R
pa potem uporabi uiOutput
, da prikažeš povezavo. Seveda bo bolj smiselno, če prikažeš sam URL (ali pa ime vira), kot če je besedilo Povzeto po povezava (to je lahko pred samo povezavo).
Da upoštevaš prelome vrstic, bo najbolje, da tudi za opis uporabiš renderUI
in uiOutput
. Potem lahko opise podajaš tako:
besedilo <- c("Prva vrstica",
"Druga vrstica",
"Tretja vrstica")
Končno obliko lahko potem dobiš z
besedilo %>% lapply(. %>% list(br())) %>% p()
- za vsko vrstico torej dodaš prelom vrstice (br()
), vse skupaj pa spraviš v odstavek (p()
).
Hvala. Zanima me še, zakaj mi v shiny-ju ne prikaže naslovov legend.
Kaj moram še narediti, da bo projekt pripravljen na oddajo?
Pri prikazu obeh zemljevidov na koncu prišteješ
guides(fill=guide_legend(title=NULL), color="none")
Ker je title
nastavljen na NULL
, se ti naslov ne prikaže. Da ne bo potrebno skrivati legende za color
, premakni color = "black"
ven iz aes
kot parameter k geom_polygon
(tako bodo meje dejansko črne) - potem lahko zgornjo vrstico kar izpustiš. Kjer podajaš naslov, lahko namesto guide_legend
uporabiš guide_colorbar
, da ti prikaže barvno lestvico.
Svetoval bi še, da imaš v Shiny aplikaciji zavihka enega zraven drugega - v ui.R
naj bosta oba tabPanel
znotraj istega tabsetPanel
. Aplikacijo tudi nekoliko povišaj, da ne bo viden drsnik - pri shinyAppDir
povečaj vrednost height
npr. na 1500 (lahko pa prvi zavihek razbiješ na dva, da aplikacije ne bo tako visoka - pri tem pazi, da imajo vnosni elementi različna imena, če jih boš podvojila).
Prvi zavihek sem razbila na dva dela, zato sem tudi zmanjšala višino, da sem odstranila prazen prostor. Kako pa dodam besedilo Povzeto po pred povezavo (v shiny-ju)? Sicer pa mislim, da je projekt sedaj končan.
Najlažje bo, če narediš odstavek z besedilom in povezavo:
p("Povzeto po:", a(href=link, link))
Dodal bom povezavo na repozitorij za zagovore, tako da se lahko s profesorjem domeniš za termin zagovora. Če boš še kaj spreminjala, mi javi, da posodobim povezavo.
Dodala sem še nekaj zadnjih popravkov, zato vas prosim, da posodobite povezavo.
Najlepša hvala za vso pomoč pri projektu.
V redu, sem posodobil.
Pozdravljeni!
Spodnja koda mi pravilno izriše graf:
mala <- filter(bolezni, bolezen == "malarija") %>% filter(drzava == "Ghana" | drzava == "India" | drzava == "Mozambique" | drzava == "Uganda" | drzava == "United Republic of Tanzania") mala$bolezen <- NULL ggplot(mala) + aes(x = leto, y = pojavnost / 1000000, group = drzava, color = drzava) + geom_point() + geom_line() + theme_bw() + labs(y = "število obolelih za malarijo (v milijonih)")
Želim pa nadomestiti angleška imena držav v legendi s slovenskimi, zato sem poskusila uporabiti slovar, vendar mi to ne deluje.
slovar <- c("Ghana" = "Gana", "India" = "Indija", "Mozambique" = "Mozambik", "Uganda" = "Uganda", "United Republic of Tanzania" = "Tanzanija") mala <- filter(bolezni, bolezen == "malarija") %>% filter(drzava == "Ghana" | drzava == "India" | drzava == "Mozambique" | drzava == "Uganda" | drzava == "United Republic of Tanzania") mala$bolezen <- NULL ggplot(mala) + aes(x = leto, y = pojavnost / 1000000, group = drzava, color = slovar[drzava]) + geom_point() + geom_line() + theme_bw() + labs(y = "število obolelih za malarijo (v milijonih)")