我正在尝试使用axlsx for ruby生成饼图。一切都很好,但我似乎无法让数据标签出现在每个“馅饼片”。我要拍摄的或多或少是这样的。(即它应该有数据标签和引线)。如果标签只有数字值,并且像往常一样在颜色映射中包含一个图例,那也没问题。
有人知道怎么做吗?
谢谢
最佳答案
我是兰迪姆,阿克斯克斯的作者。
简短的版本是,这还没有实现,所以您将无法根据您的图像将标签放入图表中。
规范中最大的缺失部分是(ECMA-376-第1部分)
21.2.2.49 DLBLS(数据标签)
它需要插入序列、图表或两者中,因为它似乎是所有三个元素中的一个共同元素。
我将在本周晚些时候有一个更深入的了解,但如果你想为axlsx做贡献的话-在freenode(axlsx)上找我,或者在repo上发布一个问题https://github.com/randym/axlsx
更新
结果这比我想象的要容易得多。
现在,饼图的master(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属性包括:
l b l_pos必须是:bestfit,:b,:ctr,:inbase,:inend,:l,:outend,:r,:t之一
默认情况下,axlsx将使用:bestfit
以及以下布尔属性:
显示图例键
秀瓦尔
显示猫名
显示用户名
显示百分比
显示气泡大小
显示引线
关于ruby - 如何使用axlsx添加数据标签,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11518065/