1

Rails アプリケーションでオープン フラッシュ チャート 2 (プラグイン) を使用しています。x 軸の範囲を除いて、すべてが滑らかに見えます。特定の使用量に対する携帯電話プランのコストを表す線を作成しています。8 つの値を生成しています。

私が遭遇している問題は、Ruby on Rails の X 軸の範囲をデータに固有のものに設定する方法です。現在表示されている値は、私が与えている配列のインデックスです。値にハッシュを渡そうとすると、グラフはまったく読み込まれません。

したがって、基本的には、行のデータを適切に設定して正しく表示する方法を取得するための助けが必要です。現在、すべての値を配列のインデックスの x 値を表すかのように扱っています。

これは、私が言っていることよりも適切な説明である可能性があるスクリーン ショットです。は正しくありません。100、200、300、400、500、600、700 のようになります。

コード:

y = YAxis.new
y.set_range(0,100, 20)

x_legend = XLegend.new("Usage")
x_legend.set_style('{font-size: 20px; color: #778877}')

y_legend = YLegend.new("Cost")
y_legend.set_style('{font-size: 20px; color: #770077}')

chart =OpenFlashChart.new
chart.set_x_legend(x_legend)
chart.set_y_legend(y_legend)
chart.y_axis = y

line = Line.new
line.text = plan.name
line.width = 2
line.color = '#006633'
line.dot_size = 2
line.values = generate_data(plan)     
chart.add_element(line)

def generate_data(plan)
  values = []
  #generate below threshold numbers
  5.times do |x|
    usage = plan.usage / 5 * x 
    cost = plan.cost
    values << cost
  end
  #generate above threshold numbers
  3.times do |x|
    usage = plan.usage + ((plan.usage / 5) * x)
    cost = plan.cost + (usage * plan.overage)
    values << cost
  end
  return values
end

また、私が抱えているもう1つの問題は、xを指定できるようにする必要があるのに対し、私が与える値はxが配列内の要素の位置であり、yが値であると見なされるため、いくつかのポイントを追加できないことです。および各ポイントの y 値なので、一連の null 値で配列をバッファリングする必要はありません

4

3 に答える 3

0

オープン フラッシュ チャート 2 を捨てて、Flotr を使用することになりました

于 2010-09-17T14:33:24.747 に答える
0

私の経験からすると、Open Flash Chart 2 で物事を行うには多くの方法があります。上記の mikezter の例はほぼ正しいです。ただし、これが XAxis ラベルの設定方法です。

x = XAxis.new
x.set_labels([100, 200, 300, 400, etc]).collect(&:to_s)
chart.x_axis = x

私の例と mikezter の唯一の違いは、私が使用していることです。

x.set_labels([array values etc])

それ以外の

x.labels = [array values etc] 
于 2010-06-17T00:12:21.433 に答える
0

ラベルを設定するには、XAxis オブジェクトを作成する必要があります。

x = XAxis.new
x.labels =  [100, 200, 300, 400, 500, 600, 700].collect(&:to_s)
chart.x_axis = x
于 2010-04-14T10:51:18.507 に答える