open_flash_chart
URL: https://github.com/pullmonkey/open_flash_chart
DEMO:http://pullmonkey.com/projects/open_flash_chart2/
Fuction: 能非常的开发出各种漂亮,强大的图表
code:
class TestItController < ApplicationController #柱状图 def index actionname = params[:actionname] || "index" Rails.logger.info("actionname is #{actionname}") respond_to do |wants| wants.html { @graph = open_flash_chart_object( 600, 300, url_for( :action => actionname, :format => :json ) ) } wants.json { chart = OpenFlashChart.new("我的柱状图") do |c| c << BarGlass.new( :values => (1..10).sort_by{rand} ) end render :text => chart, :layout => false } end end #饼状图 def bar respond_to do |format| format.json{ title = Title.new("Pie Chart Example For Chipster") pie = Pie.new pie.start_angle = 35 pie.animate = true pie.tooltip = '#val# of #total#<br>#percent# of 100%' pie.colours = ["#d01f3c", "#356aa0", "#C79810"] pie.values = [2,3, PieValue.new(6.5,"Hello (6.5)")] chart = OpenFlashChart.new chart.title = title chart.add_element(pie) chart.x_axis = nil render :text => chart.to_s } end end #line def line title = Title.new("Multiple Lines") data1 = [] data2 = [] data3 = [] 10.times do |x| data1 << rand(5) + 1 data2 << rand(6) + 7 data3 << rand(5) + 14 end line_dot = LineDot.new line_dot.text = "Line Dot" line_dot.width = 4 line_dot.colour = '#DFC329' line_dot.dot_size = 5 line_dot.values = data1 Rails.logger.info("line_hollow data is : #{line_dot.inspect}") line_hollow = LineHollow.new line_hollow.text = "Line Hollow" line_hollow.width = 1 line_hollow.colour = '#6363AC' line_hollow.dot_size = 5 line_hollow.values = data2 Rails.logger.info("line_hollow data is : #{line_hollow.inspect}") line = Line.new line.text = "Line" line.width = 1 line.colour = '#5E4725' line.dot_size = 5 line.values = data3 Rails.logger.info("line data is : #{line.inspect}") y = YAxis.new y.set_range(0,20,5) x_legend = XLegend.new("MY X Legend") x_legend.set_style('{font-size: 20px; color: #778877}') y_legend = YLegend.new("MY Y Legend") y_legend.set_style('{font-size: 20px; color: #770077}') chart =OpenFlashChart.new chart.set_title(title) chart.set_x_legend(x_legend) chart.set_y_legend(y_legend) chart.y_axis = y chart.add_element(line_dot) chart.add_element(line_hollow) chart.add_element(line) respond_to do |format| format.json { render :text => chart.to_s } end end #波动图 def chart data1 = [] data2 = [] year = Time.now.year 31.times do |i| x = "#{year}-1-#{i+1}".to_time.to_i y = (Math.sin(i+1) * 2.5) + 10 data1 << ScatterValue.new(x,y) data2 << (Math.cos(i+1) * 1.9) + 4 end dot = HollowDot.new dot.size = 3 dot.halo_size = 2 dot.tooltip = "#date:d M y#<br>Value: #val#" line = ScatterLine.new("#DB1750", 3) line.values = data1 line.default_dot_style = dot x = XAxis.new x.set_range("#{year}-1-1".to_time.to_i, "#{year}-1-31".to_time.to_i) x.steps = 86400 labels = XAxisLabels.new labels.text = "#date: Y-M-d#" labels.steps = 86400 labels.visible_steps = 2 labels.rotate = 90 x.labels = labels y = YAxis.new y.set_range(0,15,5) chart = OpenFlashChart.new title = Title.new(data2.size) chart.title = title chart.add_element(line) chart.x_axis = x chart.y_axis = y respond_to do |format| format.json { render :text => chart.to_s } end endend
line图还有一些问题,需要研究一下
访问方法
http://192.168.1.21/test_it?actionname=%22bar%22