2013-01-13 14 views
17

Mam wykres Google o wartości 500 pikseli na 500 pikseli, ale zwraca 400 pikseli na 200 pikseli. Spojrzałem na div, i pokazuje 500x500. Nie mam powodu, dla którego wykres powróci na 400 x 200. element div pokazuje 500 x 500, ale prostokąt w formacie SVG pokazuje 400x200, zmniejszając wszystkie obrazy.Domyślny rozmiar wykresu Google

Czy istnieje ustawienie, którego nie znam?

<div class="span5"> 
<div id="qual_div" style="border:1px black solid;margin:0px;padding:0px;height:500px;width:500px"></div> 
</div> 
    <script type="text/javascript"> 
    var data, options, chart; 
    google.load("visualization", "1", {packages:["corechart"]}); 
    google.setOnLoadCallback(drawChart); 
    function drawChart() { 
    data = google.visualization.arrayToDataTable([ 
     ['Qual', 'Stat'], 
     ['Patient Satisfaction',  {{ $stats->attributes['sa_ptsatisfaction'] }}], 
     ['Medical Knowledge',  {{ $stats->attributes['sa_medknowledge'] }}], 
     ['ER Procedural Skills', {{ $stats->attributes['sa_erprocskills'] }}], 
     ['Nurse Relationship Skills', {{ $stats->attributes['sa_nrsrltnshpskls'] }}], 
     ['Speed', {{ $stats->attributes['sa_speed'] }}], 
     ['Compassion', {{ $stats->attributes['sa_compassion'] }}], 
     ['EMR Utilization Skills', {{ $stats->attributes['sa_emr'] }}], 
     ['Profession Teamwork Skills', {{ $stats->attributes['sa_proftmwrkskills'] }}] 
    ]); 

    options = { 
     title: 'My Daily Activities' 
     ,chartArea:{left:0,top:0,width:"100%",height:"100%"} 
    }; 

    chart = new google.visualization.PieChart(document.getElementById('chart_div')); 
    chart.draw(data, options); 
    } 

    function adjustChart(nm, vl) { 
    for (var r=0; r<data.D.length; r++) { 
     if (data.D[r].c[0].v == nm) { 
     data.D[r].c[1].v = parseInt(vl); 
     break; 
     } 
    } 
    chart.draw(data, options); 
    } 
</script> 
+1

div wewnątrz twojego kodu nie jest div, w którym zostanie narysowany wykres (to #qual_div), czy jesteś pewien, że #chart_div ma rozmiar 500x500. Dla mnie twój kod działa poprawnie z elementem div o wymiarach 500 x 500, rozmiar zostanie poprawnie zastosowany do svg –

+0

Jeśli poniżej znajdziesz odpowiedź, kliknij znak wyboru poniżej strzałek w górę/w dół w odpowiedzi, aby inni mogli zobacz, że to rozwiązało twój problem. Jeśli moja odpowiedź nie była wystarczająco jasna lub nadal występują problemy, dodaj komentarz do odpowiedzi wyjaśniający, czym jest ten problem/co nie jest jasne. – jmac

Odpowiedz

28

Istnieje kilka sposobów na ustawienie rozmiaru wykresu.

Pierwszy to ustawienie rozmiaru elementu, który je zawiera. Domyślnie wykres będzie miał szerokość i wysokość elementu zawierającego (see Google Visualization documentation for default values of height/width).

Drugim jest nie określają rzeczywisty rozmiar elementu, a zamiast ustawić wysokość/szerokość wykresu do 500px każdego ręcznie dodając ci do opcji:

options = { 
    title: 'My Daily Activities' 
    ,chartArea:{left:0,top:0,width:"100%",height:"100%"} 
    ,height: 500 
    ,width: 500 
}; 

Co to są rzeczywiście robi w twoim kodzie ustawia rozmiar samego wykresu (nie całego elementu wykresu z osiami, etykietami i legendami). Spowoduje to, że obszar wykresu stanie się 500px przez 500px, jeśli wskażesz odpowiedni div wskazany przez @ Dr.Molle w komentarzach.

Zakładając, że nie chcemy, nowe opcje byłyby:

options = { 
    title: 'My Daily Activities' 
    ,height: 500 
    ,width: 500 
}; 
+1

Ale jak to odzwierciedli zmianę rozmiaru okna? Domyślnie moje garphy wyświetlane są w rozdzielczości 400 × 200 pikseli. Nie chcę ustawiać szerokości/wysokości w opcjach, ponieważ może ona wykraczać poza granice rozmiaru okna. Jak sobie z tym poradzić? –

+0

Naprawdę pomocne, dziękuję – Doidgey

+0

@Shivaji_Vidhale Jakieś rozwiązanie problemu szerokości? – Aadam

0

Więc ustawienie wysokość i szerokość jak w utworach odpowiedziami JMAC, ale jeśli chcesz to reaguje istnieją pewne dodatkowe rzeczy Musiałem zrobić.

Ale tylko do tworzenia kopii zapasowych drugi powód mam ten problem w 1. miejscu jest: Div, że ten wykres jest wyświetlany w jest niewidoczna Po załadowaniu strony.

Widziane tutaj ukryty Wykres Szerokość jest Niewłaściwy 400 przez 200: jsfiddle.net/muc7ejn3/6/

Widziane tutaj ukryty Wykres Szerokość jest Prawidłowe: jsfiddle.net/muc7ejn3/7/

Innym sposobem na to jest tylko Un-ukryć Chart tuż przed chart.draw() jest wywoływana, następnie ukryć je ponownie, coś takiego:

tempShowChart(); 
chart.draw(view, options); 
hideChartAgain(); 

nie obsługiwać zmiana rozmiaru okna.

+0

jest to odpowiedź lub inne pytanie? –

+0

jest to odpowiedź na pytanie, dlaczego wykres Google wyświetla się przy pytaniu o wielkości 400 na 200 pikseli. Nie sądziłem, że zaakceptowana odpowiedź jest wystarczająco dobra, ponieważ zmusza cię do określenia stałej szerokości i wysokości piksela. Moje rozwiązanie, możesz określić szerokość 50% na div i to się dostosuje, lub użyjesz bootstrap Kolumny i dostosuje etc ... –

Powiązane problemy