2012-07-17 2 views
2

Я пытаюсь создать круговую диаграмму с использованием axlsx для ruby. Все работает нормально, но я не могу заставить метки данных отображаться для каждого «кусочка пирога». То, что я снимаю, более или менее похоже на это image. (т. е. должны иметь метки данных и линии лидеров). Было бы также хорошо, если бы метки имели численное значение и включали в себя легенду с отображением цветов, как обычно.Как добавить метки данных с помощью axlsx

Кто-нибудь знает, как это сделать?

Благодаря

+0

Добро пожаловать на переполнение стека. Я не эксперт axlsx, но не могли бы вы отправить свой код? Взгляните на http://stackoverflow.com/faq#questions и http://stackoverflow.com/questions/how-to-ask, если вы хотите улучшить свой пост –

ответ

6

Это randym, автор axlsx. Короткий вариант заключается в том, что это еще не реализовано, поэтому вы не сможете получить ярлыки в диаграмме в соответствии с вашим изображением.

Самый большой недостающий кусок из спецификации является (ECMA-376 - Часть 1)

21.2.2.49 dLbls (Подписи данных)

, который должен быть подключен к любой серии, диаграммы, или как в он, по-видимому, является общим элементом всех трех.

у меня будет через некоторое время на этой неделе, чтобы иметь более глубокий взгляд, но если вы за вклад в axlsx - возьмите меня на Freenode (#axlsx) или отправить вопрос на репо https://github.com/randym/axlsx

UPDATE

Оказывается, это было намного проще, чем я ожидал.

В настоящее время имеется рабочая версия для мастера (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,: УТР,: InBASE ,: inEnd,: л,: outEnd,: г,: т По умолчанию axlsx будет использовать: Bestfit

и следующие логические атрибуты:

show_legend_key

show_val

show_cat_name

show_ser_name

show_percent

show_bubble_size

show_leader_lines

+0

фантастический! Огромное спасибо. – jmichels

+0

Привет, @randym, не могли бы вы взглянуть на этот вопрос: http: //stackoverflow.com/questions/23986981/uninitialized-constant-zipdostime-error-when-using-axlsx-gem-in-rails-app Я не смог найти хорошую документацию по методу сериализации пакета в axlsx. Я сталкиваюсь с некоторыми трудностями при попытке использовать axlsx в моем приложении Rails, но он отлично работает в отдельной рубиновой программе. Был бы признателен за любую помощь в этом отношении. Спасибо! –

+0

Для этого вы заслуживаете большего внимания! –

Смежные вопросы