以下のテーブルとほぼ同じになるテーブルからデータを取得したいのですが、折れ線グラフでデータを取得します。日付値はY軸にあり、XP値はX軸にプロットされます。ユーザーごとに数字が異なるので、各ポイント間の距離を「相対的」にプロットする方法が必要だと思います。
テーブルの例http://img687.imageshack.us/img687/4175/tablel.png
助言がありますか?
以下のテーブルとほぼ同じになるテーブルからデータを取得したいのですが、折れ線グラフでデータを取得します。日付値はY軸にあり、XP値はX軸にプロットされます。ユーザーごとに数字が異なるので、各ポイント間の距離を「相対的」にプロットする方法が必要だと思います。
テーブルの例http://img687.imageshack.us/img687/4175/tablel.png
助言がありますか?
レンダリングされたテーブルからではなく、データソースからデータを取得することをお勧めします。とにかく、それは2つの別々の質問です:テーブルからデータを取得する方法とグラフを描く方法。
PHPでチャートを描くのはとても簡単です。HTML / CSSを使用してバーを描画し、PHPを使用してバーの長さを計算できます。
または、JavaScriptルートを使用する場合は、Raphaëlを使用します。
私はHighChartsに行きます。
私はPHPから次のものを使用しました:Google Charts、Open Flash Chart、YUIチャート(Flash)、およびAMCharts(これもFlash)。
それらはすべて非常に使いやすく、すべてに長所と短所があります。1ページに複数のグラフを表示する場合は、Flashベースのグラフを使用しないでください。ブラウザが一度に12個のFlashチャートを表示するのに問題があることがわかりました。AMChartsはおそらく最も機能が豊富ですが、使用可能なオプションは選択したチャートパッケージによって異なり、構成はかなり複雑です。
linux / unixプラットフォームを使用している場合は、おそらくすでにGnuplotがインストールされています。Gnuplotは、プロットファイルとデータファイルを取得して画像を生成できます。
最初に生成する必要があるHistory.gnuplot:
set title "Rawr_satch history"
set xlabel "Time"
set ylabel "Ranking"
set output "rawr_satch_graph.png"
set terminal png color
set xdata time
plot "rawr_satch_xphistory.dat" with linespoints
rawr_satch_xphistory.dat
これは、データファイルがすでに生成され、次のようにフォーマットされていることを前提としています。
2010-03-06 385581123
2010-03-05 384895430
2010-03-04 382983388
人々はまた、PHP-GNUPlotなど、ほとんどの言語のGnuplotにインターフェースを書き込んでいます。gnuplotスクリプトは非常に複雑になる可能性があり、複数の変数などをプロットできます。
私はGoogleChartTools APIを使用し、完全にお勧めします。単純な線グラフを探している場合は、インストールや構成を必要としない、呼び出すことができる非常に単純なAPIを提供します。いくつかのドキュメントは紛らわしいですが、私は少しの忍耐でそれを理解することができました。
必要なのはIMGタグであり、適切なパラメータを使用してsrcがGoogleURLを指すようにします。
後でより多くの機能を提供したい場合は、よりインタラクティブなJavascriptライブラリもあります。