3

Rubyのaxlsxを使用して円グラフを生成しようとしています。すべて正常に動作していますが、「パイのスライス」ごとにデータ ラベルを表示できないようです。私が撮影しているのは、多かれ少なかれこの画像のようなものです。(つまり、データ ラベルとリーダー ラインが必要です)。また、ラベルに数値のみを表示し、通常どおりカラー マッピングの凡例を含めることもできます。

誰でもこれを行う方法を知っていますか?

ありがとう

4

1 に答える 1

8

axlsx作者のrandymです。短いバージョンでは、これはまだ実装されていないため、画像のようにラベルをチャートに入れることはできません.

仕様に欠けている最大の部分は (ECMA-376 - パート 1) です。

21.2.2.49 dLbls (データラベル)

シリーズ、チャート、またはその両方にプラグインする必要があるのは、3 つすべてに共通の要素であるように思われるからです。

今週後半に詳しく見ていきますが、axlsx に貢献したい場合は、freenode (#axlsx) で私をつかむか、リポジトリhttps://github.com/randym/axlsxに問題を投稿してください。

アップデート

これは、私が予想していたよりもはるかに簡単でした。

円グラフ用のマスター ( https://github.com/randym/axlsx )の作業バージョンがあります。今後数日間でサポートされている残りのチャート タイプを更新し、来週の公式リリースに向けて準備を進めます。

これが必要であることをお知らせいただきありがとうございます。

これを使用する方法の簡単な例を次に示します。

require 'axlsx'
p = Axlsx::Package.new
wb = p.workbook

# Pie Chart
wb.add_worksheet(:name => "Pie Chart") do |sheet|
  sheet.add_row ["First", "Second", "Third", "Fourth"]
  sheet.add_row [1, 2, 3, 4]
  sheet.add_chart(Axlsx::Pie3DChart, :start_at => [0,2], :end_at => [5, 15], :title=> 'dark corner here') do |chart|
    chart.add_series :data => sheet["A2:D2"], :labels => sheet["A1:D1"]
    chart.d_lbls.show_val = true
    chart.d_lbls.show_percent = true
    chart.d_lbls.d_lbl_pos = :outEnd
    chart.d_lbls.show_leader_lines = true
  end
end

p.serialize 'pie_chart_with_data_labels.xlsx'

d_lbls で使用できる属性は次のとおりです。

lbl_pos :bestFit、:b、:ctr、:inBase、:inEnd、:l、:outEnd、:r、:t のいずれかである必要があります。デフォルトでは、axlsx は :bestFit を使用します。

および次のブール属性:

show_legend_key

show_val

show_cat_name

show_ser_name

show_percent

show_bubble_size

show_leader_lines

于 2012-07-17T10:51:03.410 に答える