Neden

2016-04-06 23 views
1

burada bağlam R İstatistiki Bilgi İşlem için ProjeNeden

(chartJSRadar belgelerinden) Aşağıdaki kodu düşünün olan() chartJSRadar sonra efsane() çağırarak "plot.new henüz çağrılmadı" alıyorum

library(radar chart) 
labs <- c("Communicator", "Data Wangler", "Programmer", 
     "Technologist", "Modeller", "Visualizer") 

scores <- list(
    "Rich" = c(9, 7, 4, 5, 3, 7), 
    "Andy" = c(7, 6, 6, 2, 6, 9), 
    "Aimee" = c(6, 5, 8, 4, 7, 6) 
) 

chartJSRadar(scores = scores, labs = labs, maxScale = 10) 

kullanıyorum bir efsaneydi koymak istiyorum:

legend("topleft", c("Rich","Andy","Aimee"), cex=0.8, fill=colors) 

Ama aşağıdaki hatayı alıyorum:

Error in strwidth(legend, units = "user", cex = cex, font = text.font) : 
    plot.new has not been called yet 

Bu hata iletisiyle ilgili birçok soru gördüm. Bazıları efsane koordinatlarının çizelgeden uzak durmasıydı. Bazıları bir geçici çözüm sunar, ancak hatanın neden oluştuğunu açıklamayın.

Soruma sorum: neden bu hatayı alıyorum? Efsane() ve chartJSRadar() arasında bir uyumsuzluk gibi temelde yanlış bir şey gibi görünüyor, ama anlamıyorum.

Lütfen tavsiye!

+0

İşte bir arsa türünüz için bir efsane görebileceğiniz bir link: http://stackoverflow.com/questions/23206354/legend-with-radarchart-in-loop –

+0

Mesajınız için teşekkürler. Sowmya – Chocksmith

cevap

1

Görünüşe göre, chartJSRadar bir arsa çağırmaz, ancak görüntüleyicide etkileşimli bir çizim gösterir. Dolayısıyla bir arsa çağrılmaz ve legend() kullanamazsınız. Radar arsa için bir efsane seçeneği yoktur gibi chartJSRadar belgelerine bakıldığında, görünüyor, http://www.chartjs.org/docs/#radar-chart-chart-options bkz:

//String - A legend template 
legendTemplate : "<ul class=\"<%=name.toLowerCase()%>-legend\"><% for (var i=0; i<datasets.length; i++){%><li><span style=\"background-color:<%=datasets[i].strokeColor%>\"></span><%if(datasets[i].label){%><%=datasets[i].label%><%}%></li><%}%></ul>" 

Bu benim hiçbir uzmanlığa sahip JavaScript,, bu yüzden ne yazık ki bu bildiğim kadarıyla olabildiğince olduğunu sana yardım etmek.

+0

tarafından önerildiği gibi radarchart yerine fmsb kullanır "Bu nedenle bir arsa çağrılmaz ve legend()" kullanamazsınız. Bu neredeyse sorumu cevapladı. Lütfen bana nasıl olduğunu anlamak için bana yardım edin. "Etkileşimli arsa" nın "düzenli bir arsa" olmadığını nasıl bilmem gerekiyordu? Belgelendi mi? Eksik olduğum bir kavram mı? Orada kaç farklı tip/kategoriler var? – Chocksmith

+0

@Chocksmith Sizin arsanız, R'nin kendi grafik aygıtı penceresinde grafiklerin çoğunun çizildiği bir html belgesinde açılır. –

+0

Bilmeniz gerektiğini sanmıyorum, eğer RStudio kullanıyor olmanız dışında, arsalarınız görüntüleyici bölmesinde gösterilir, çünkü @ SowmyaS.Manian devletleri, bir html belgesidir. [Web içeriği izleyici bölmesinde gösterilir] (https://support.rstudio.com/hc/en-us/articles/202133558-Extending-RStudio-with-the-Viewer-Pane). – Therkel

0

radarchart() işlevi bulunan fmsb paketini kullanmayı deneyin. Verileriniz için aynı grafiği çizebilirsiniz.

http://127.0.0.1:25882/library/fmsb/html/radarchart.html

Ben R denedim ve R çizim penceresinde çalışır. Radar tablosu verisini anlamadığım için. R Studio tüm öbek çalıştırmak için emin olun kullanılıyorsa kesinlikle (+ ctr giremez) paket fmsb

+0

bağlantısı bozuk. Doğru olan: http://www.inside-r.org/packages/cran/fmsb/docs/radarchart – Chocksmith

1

kullanılarak radarchart() ve legend() kullanarak efsaneyle yapmak mümkün olacaktır. Igraph kullanarak benzer bir sorun yaşadım. Efsaneyi grafiğe eklemeyi denedim, ancak aynı hata mesajını aldım. Tüm parçayı çalıştıran çalıştı.