2015-03-19 2 views
3

Я уже много исследовал диаграммы Google и скрытые метки фрагментов, но ничего не нашел с ярлыками за пределами срезов, поэтому я надеюсь, что там является другим решением, чем alreadyon SO.Отверстие для круговых диаграмм Google «второстепенных» меток за пределами пирога

Я генерирую много разных типов диаграмм и для лучшей читаемости. Я настраиваю диаграммы пирога (doghnut), чтобы они отображали свои метки за пределами срезов, связанных с линиями. Теперь, как видно из других вопросов, диаграммы google просто скроют метку среза, если нет места для нее или если значение слишком мало, что неприемлемо для меня и почему я хотел показать их снаружи, где должно быть достаточно места.

По-прежнему google-графики не любят «незначительные» значения данных и просто не отображают свои метки (метки), даже если sliceVisibilityThreshold установлен в 0, есть ли какое-либо другое решение со следующей настройкой? (Вы должны видеть, что метка «Far» для среза фиолетового не визуализируется)

var chartData = { 
 
    "options": { 
 
     "legend": { 
 
     "position": "none" 
 
     }, 
 
     "pieHole": 0.5 
 
    }, 
 
    "data": [ 
 
     [ 
 
     "Label 1", 
 
     "Label 2" 
 
     ], 
 
     [ 
 
     "Foo", 
 
     33059 
 
     ], 
 
     [ 
 
     "Bar", 
 
     57893 
 
     ], 
 
     [ 
 
     "Baz", 
 
     8135 
 
     ], 
 
     [ 
 
     "Boo", 
 
     12211 
 
     ], 
 
     [ 
 
     "Far", 
 
     3740 
 
     ], 
 
     [ 
 
     "Faz", 
 
     7219 
 
     ] 
 
    ] 
 
    }, 
 
    ctx = document.getElementById('canvas'); 
 

 
var onLoadGoogle = function() { 
 
    var data = new google.visualization.arrayToDataTable(chartData.data); 
 
    var chart = new google.visualization['PieChart'](ctx); 
 
    var options = chartData.options; 
 

 
    options.legend.position = 'labeled'; 
 
    options.pieSliceText = 'none'; 
 
    options.sliceVisibilityThreshold = 0; 
 

 
    chart.draw(data, chartData.options); 
 
} 
 

 
window.google.load("visualization", "1.1", { 
 
    packages: ["corechart"], 
 
    callback: onLoadGoogle, 
 
    nocss: true 
 
});
#canvas { 
 
    width: 600px; 
 
    height: 300px; 
 
}
<div id="canvas"></div> 
 
<script src="https://www.google.com/jsapi"></script>

+0

Вы нашли решение? –

+0

Нет, год назад не было решения, но я не проверял, исправлены ли они с версиями плагина никогда. – Simon

+0

все еще не исправлено :( –

ответ

1

Как отмечалось в documentation for PieChart, опция pieStartAngle может помочь сделать пространство для некоторых лейблов, хотя нет ничего, что можно было бы сделать, если просто недостаточно места. Это относится как к этикеткам по умолчанию внутри срезов, так и к используемой легенде.

Вы также можете поэкспериментировать с pieSliceTextStyle и legend.textStyle, чтобы установить опцию fontSize на меньший шрифт.

+0

Итак, нет другого решения, кроме как в моих «уже предложенных на SO» ссылках. Ваше предложение изменить fontSize на самом деле не является надежным решением в моем случае, так как я динамически генерирую много диаграмм, и я никогда не могу знать как я должен настроить размер, чтобы заставить его работать для всех них. – Simon

+0

На самом деле, другая идея состоит в том, чтобы упорядочить ваши вещи по-разному, поэтому они попадают в места, где достаточно места, но поскольку ваши данные динамичны, это будет сложно Кроме того, вам действительно нужен PieChart? Столбец или гистограмма может быть лучшим пользовательским интерфейсом, что дает всем барам больше равного обращения. – dlaliberte

+1

Ну, я не контролирую, какой график используется, и почти невозможно убедить клиента просто не использовать круговые диаграммы;) – Simon

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