0

私の市の市議会議員の経時的なグラフを作成したいと考えています。これは折れ線グラフのようなものだと思います。x 軸は年になります。9 つの市議会議員の議席があるため、9 つの直線が存在し、それぞれが時間の経過とともに誰が市議会議員であったかを示します (おそらく、さまざまな色の線分によって、またはマウスオーバーで名前を表示することによって)。多分これはタイムラインのようなものです。

市の予算をグラフ化すると、年度と市の予算はどちらも「数値」型なので、この古典的な折れ線グラフがうまく機能します。

この新しいグラフでは、すべてのデータ型「文字列」を渡しています。それらは人の名前であり、Google Charts API はエラーを出しています:「軸 #0 のデータ列は文字列型にすることはできません」

このチャートはどうすれば作れますか?(予算の黒字や赤字、強盗の数などの数値データをグラフ化するだけでなく、[別のグラフで] 当時の担当者を関連付けたい.)

4

1 に答える 1

0

PHPで、mySQLデータベースにクエリを実行し、Google Chart APIが受信する必要のある形式のJSONオブジェクトを作成して、次のようにonHoverの名前を示す水平線を作成しました。

$conn = mysql_connect("x","y","z");
mysql_select_db("a",$conn);

$sql = "SELECT year,d_mayor,d_council1,d_council2,d_council3 
FROM metrics WHERE year 
IN ('1998','1999','2000','2001','2002','2003','2004','2005','2006','2007','2008','2009','2010','2011','2012')";

$sth = mysql_query($sql, $conn) or die(mysql_error());

//start the json data in the format Google Chart js/API expects to receive it change
$JSONdata = "{
              \"cols\": [
                 {\"label\":\"Year\",\"type\":\"string\"},
                    {\"label\":\"City Council 1\",\"type\":\"number\"},
                    {\"label\":\"City Council 2\",\"type\":\"number\"},
                    {\"label\":\"City Council 3\",\"type\":\"number\"},
                    {\"label\":\"Mayor\",\"type\":\"number\"}
                  ],
              \"rows\": [";

//loop through the db query result set and put into the chart cell values (note last ojbect in array has "," behind it but its working)
while($r = mysql_fetch_assoc($sth)) {
   $JSONdata .= "{\"c\":[{\"v\": " . $r['year'] . "},  {\"v\": 1, \"f\": \"" . $r['d_council1'] . "\"}, {\"v\": 2, \"f\": \"" . $r['d_council2'] . "\"}, {\"v\": 3, \"f\": \"" . $r['d_council3'] . "\"}, {\"v\": 10, \"f\": \"" . $r['d_mayor'] . "\"},]},";
}    

//end the json data/object literal with the correct syntax
$JSONdata .= "]}";

echo $JSONdata;

mysql_close($conn);
于 2012-06-12T05:20:27.770 に答える