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