forked from OrgGo/goplot
通过 URL 路由匹配 .chart 文件.
Signed-off-by: rick.chan <chenyang@autoai.com>
This commit is contained in:
parent
d1ca07b46a
commit
e9103b47a6
17
README.md
17
README.md
|
@ -1,9 +1,10 @@
|
|||
goplot
|
||||
======
|
||||
|
||||
goplot是一个使用简单的绘制图表的工具,图表绘制使用了[Chart.js](http://www.chartjs.org/)开源库,编译好的goplot只有一个二进制文件,不依赖任何库/网络。
|
||||
goplot 是一个使用简单的绘制图表的工具,图表绘制使用了[Chart.js](http://www.chartjs.org/)开源库,编译好的goplot只有一个二进制文件,不依赖任何库/网络。
|
||||
|
||||
##### 下载
|
||||
|
||||
##### 下 载
|
||||
[Mac OS X](http://www.bigendian123.com/goplot-darwin.tar.gz)
|
||||
|
||||
[Linux amd64](http://www.bigendian123.com/goplot-linux-amd64.tar.gz)
|
||||
|
@ -11,10 +12,16 @@ goplot是一个使用简单的绘制图表的工具,图表绘制使用了[Char
|
|||
Windows暂缺
|
||||
|
||||
##### 使用方法
|
||||
* 解压下载包后,进入解压目录,可以看到一个goplot的可执行文件和一些*.chart文件,这些chart文件是默认的一些数据文件样例。可以在这些chart文件的目录执行goplot,然后通过浏览器访问http://localhost:8000就可以看到图表了。
|
||||
* 你可以把`goplot`工具放到你的`PATH`中,在chart文件所在的目录执行goplot即可。
|
||||
* chart文件必须是.chart后缀名,内容可以参考源码examples目录中的例子。启动goplot的目录如果有多个chart文件,可以通过不断刷新网页来切换图表。
|
||||
|
||||
* 解压下载包后,进入解压目录,可以看到一个 goplot 的可执行文件和一些 *.chart 文件,这些 chart 文件是默认的一些数据文件样例。可以在这些 chart 文件的目录执行 goplot,然后通过浏览器访问:<http://localhost:8000> 就可以看到图表了。
|
||||
* 你可以把 `goplot` 工具放到你的 `PATH` 中,在 chart 文件所在的目录执行 goplot 即可。
|
||||
* chart 文件必须是 .chart 后缀名,内容可以参考源码 examples 目录中的例子。启动 goplot 的目录如果有多个 chart 文件,可以通过不断刷新网页来切换图表。
|
||||
|
||||
.chart 文件定义了 Chart 的 Name,goplot 会根据该 Name 建立路由规则,访问对应 Name 的 Chart 规则为:
|
||||
|
||||
```url
|
||||
http://localhost:8000/\<Chart Name>
|
||||
```
|
||||
|
||||
##### 曲线图
|
||||
![](image/line.png)
|
||||
|
|
13
server.go
13
server.go
|
@ -2,6 +2,7 @@ package main
|
|||
|
||||
import (
|
||||
"net/http"
|
||||
"strings"
|
||||
"text/template"
|
||||
)
|
||||
|
||||
|
@ -78,7 +79,17 @@ func handler(w http.ResponseWriter, r *http.Request) {
|
|||
w.Write([]byte(err.Error()))
|
||||
return
|
||||
} else {
|
||||
chart = ChartHandlers[prop.Name]
|
||||
var ok bool
|
||||
urls := strings.Split(r.URL.String(), "/")
|
||||
if 2 > len(urls) {
|
||||
w.Write([]byte(err.Error()))
|
||||
return
|
||||
}
|
||||
chart, ok = ChartHandlers[urls[1]]
|
||||
if !ok {
|
||||
w.Write([]byte(err.Error()))
|
||||
return
|
||||
}
|
||||
|
||||
canvas := chart.Canvas("line", prop.Height, prop.Width)
|
||||
Args["Canvas"] = canvas
|
||||
|
|
Loading…
Reference in New Issue