我想从一个几乎与下面的表格完全相同的表格中获取数据,但将其放在折线图中。日期值将位于 Y 轴上,并将 XP 值绘制在 X 轴上。由于每个用户的数字各不相同,我想我需要一种方法来使每个点之间的距离绘制为“相对”。
示例表 http://img687.imageshack.us/img687/4175/tablel.png
有什么建议么?
我想从一个几乎与下面的表格完全相同的表格中获取数据,但将其放在折线图中。日期值将位于 Y 轴上,并将 XP 值绘制在 X 轴上。由于每个用户的数字各不相同,我想我需要一种方法来使每个点之间的距离绘制为“相对”。
示例表 http://img687.imageshack.us/img687/4175/tablel.png
有什么建议么?
最好从数据源中获取数据,而不是从渲染表中获取数据。无论如何,这是两个独立的问题:如何从表格中获取数据以及如何绘制图表。
用 PHP 绘制图表非常简单。HTML/CSS 可用于绘制条形图,PHP 可用于计算条形图长度。
或者如果你想走 JavaScript 路线,也许是Raphaël。
我使用了 PHP 中的以下内容:Google Charts、Open Flash Chart、YUI charts (Flash) 和AMCharts(也是 Flash)。
它们都非常易于使用,并且各有利弊。如果您想在一页上显示多个图表,请不要使用基于 Flash 的图表。事实证明,浏览器无法同时显示十几个 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
人们还为大多数语言编写了 Gnuplot 接口,例如PHP-GNUPlot。Gnuplot 脚本可能非常复杂,您可以绘制多个变量等。
我使用并完全推荐Google Chart Tools API。如果您正在寻找一个简单的折线图,它们提供了一个非常简单的 API,您可以调用该 API,无需安装或配置。一些文档令人困惑,但我已经能够以一点耐心弄清楚。
所需要的只是一个 IMG 标记并将 src 指向具有正确参数的 Google URL。
如果您想稍后提供更多功能,它们还有一个更具交互性的 Javascript 库。
我会选择HighCharts。