2013-11-14 2 views
2

Я добавил диаграмму Google Visualization на мою страницу. Все отлично работает, и у меня не было проблем с настройкой его с помощью предопределенных опций. Тем не менее, нет возможности отображать значения в легенде вместо процентов, только внутри самих фрагментов или всплывающей подсказки.Google (диаграмма) Визуализация: отображение значения в легенде

Я хотел бы показать значения в легенде и проценты в срезах (последнее можно сделать с помощью опций).

Для точки бонусной ... я могу добавить «MW» на конце значений, т.е. 145WM выводится вместо кода просто 145.

моего текущего графика: http://pastebin.com/4JJdpxKx

Я уверен, это очевидно, но данные приводятся динамически.

ответ

1

Единственный способ добавить значение к легенде - изменить значения или отформатированные значения данных столбца метки, что также изменит метки в подсказках.

Добавляя «MW» до конца ваших чисел легко: просто использовать NumberFormatter:

// format column 1 as "1,234 MW" 
var formatter = new google.visualization.NumberFormat({pattern: '#,### MW'}); 
formatter.format(data, 1); 
+0

Благодарим за ответ. Приложение MW отлично поработало, большое спасибо за это! Добавление значений в легенду кажется мне недоступным, казалось бы, сейчас.В этом случае я действительно хотел бы скрыть значения, но сохранить имена срезов, если это имеет смысл (на изображении ниже, скрыть% возрастов, но сохранить название страны). Кажется, у вас нет возможности для этого:/ Наконец, есть какая-то странная ошибка выравнивания ... http://img707.imageshack.us/img707/8076/36wq.png. Вы можете увидеть это для ценности Франции на слайде. Кажется, он не может правильно выровнять его, как это делают остальные. – lotech

+0

Вы не можете отключить проценты при использовании параметра 'legend.position' для' 'labelled'' (это странно, я знаю). Проблемы с выравниванием, подобные тем, которые вы видите во Франции, обычно связаны с одной из двух вещей: либо неправильной загрузкой API, либо рисованием диаграммы внутри скрытого div. Из кода, который вы положили на Pastebin, это не похоже, что любой случай относится к вам. Вы второй человек за последние пару дней, чтобы сообщить о такой проблеме. В другом случае проблема выравнивания присутствовала только в Chrome, и только для некоторых пользователей (я не мог ее реплицировать сам). cont ... – asgallant

+0

Я бы предложил подать отчет об ошибке здесь: http://code.google.com/p/google-visualization-api-issues/issues/list. Включите код, который воспроизводит проблему для вас (ссылка на ваш Pastebin прекрасна, если в этом коде есть проблема), а также подробную информацию о вашей локальной среде, которую вы можете предоставить (операционная система, браузеры, используемые [с номерами версий]). – asgallant

14

Это трудно найти надлежащую документацию для Google Charts, и мой самый большой страх, потому что это не документально это может быть отнято в любое время, но это должно делать то, что вы хотите:

chart1.options = { 
    . 
    . 
    . 
    pieSliceText: 'value', 
    legend: { 
     position: 'labeled', 
     labeledValueText: 'both', 
     textStyle: { 
      color: 'blue', 
      fontSize: 14 
     } 
    } 
}; 

для обоих pieSliceText и labeledValueText Я успешно использовал варианты:

value 
both 
none 
percent 

Однако, я не уверен, что процентов потому что я получаю тот же результат, если я использую любое вредное слово. Что касается pieSliceText, похоже, он не принимает значение и. Кроме того, нет не признан на с надписью ValueText.

Чтобы убедиться, что вам придется попробовать различные комбинации. Я лично хотел бы иметь как на pieSliceText, но получение его на этикетке легенды для меня достаточно.

Очень жаль, что в Google Charts отсутствует согласованность по своим параметрам, но это может быть потому, что они не захотят продолжать их поддерживать. Еще более печально, что если документация для них существует, ее почти невозможно найти.

+0

Большое вам спасибо за этот ответ. Я действительно не мог найти эти параметры легенды в документации zoogle. – artificis

0

Вы должны создать переменные и динамически извлекать данные.

var legendValue = 100; 
var legendText1= 'legend1' + legendValue; 

data.addRows([[legendText1,legendValue],[],[]]) 
Смежные вопросы