У меня есть горизонтальная гистограмма, на которой я показываю название поля. Если имя (текст) превышает полосу, текст должен быть черного цвета, как показано ниже. Как я могу это сделать?Текст на горизонтальной гистограмме - d3
ответ
Мне удалось сделать это с помощью двух текстовых меток. Верхняя метка завернута в svg, чтобы закрепить ее длину. Вот рабочий пример: http://jsfiddle.net/cuckovic/C6SSj/
bar.append("text")
.attr("class", "below")
.attr("x", 12)
.attr("dy", "1.2em")
.attr("text-anchor", "left")
.text(function(d) { return d.sharedLabel; })
.style("fill", "#000000");
bar.append("rect")
.attr("class", "malebar")
.attr("height", barWidth-gap)
.attr("x", 10);
bar.append("svg")
.attr({
height: barWidth-gap
})
.append("text")
.attr("class", "up")
.attr("x", 12)
.attr("dy", "1.2em")
.attr("text-anchor", "left")
.text(function(d) { return d.sharedLabel; })
.style("fill", "#ffffff");
Это не мелочь. Вы должны были бы
- Добавить текст.
- Определите его фактические размеры, используя
.getBBox()
или что-то подобное. - Удалить текст.
- Разделите текст на отдельные сегменты (например,
tspan
s) в зависимости от его фактической ширины и ширины панели. - Добавьте эти сегменты с соответствующими стилями.
То есть вам придется вручную разбить текст на части, которые вы хотите использовать для разных стилей, а затем назначьте эти стили.
не могли бы вы привести мне пример? – Preethi
Нет примера для того, что вы просите точно, но [здесь] (http://enja.org/code/tuts/d3/bar/) - это учебник, в котором используется ограничивающая рамка и [здесь] (http: //stackoverflow.com/questions/13922862/getting-text-area-using-getbbox) - вопрос по этому вопросу. –
- 1. Исправить подсказки на горизонтальной гистограмме d3.js
- 2. Как иметь определенную границу на горизонтальной гистограмме d3.js
- 3. Выполнение слайдера на горизонтальной гистограмме с использованием D3
- 4. Добавление метки на гистограмме D3
- 5. D3 чистки на сгруппированную гистограмме
- 6. Как печатать числа на горизонтальной гистограмме?
- 7. Автоматическая корректировка полей в горизонтальной гистограмме
- 8. d3.js: Получение градиентов на гистограмме?
- 9. Ректы не будут отображаться на гистограмме d3
- 10. Инвертирование баров на гистограмме d3.js
- 11. Как добавить строку по оси х на горизонтальной гистограмме в d3
- 12. Показать все метки в Highcharts горизонтальной гистограмме
- 13. Форматирование дат в горизонтальной гистограмме ggplot
- 14. Как построить отдельные компоненты в горизонтальной гистограмме?
- 15. Скрыть нижнюю ось x в горизонтальной гистограмме?
- 16. Выравнивание процентных divs в горизонтальной гистограмме?
- 17. Chart.js: расстояние бар в горизонтальной гистограмме
- 18. d3 динамические данные в гистограмме
- 19. Как рисовать вертикальную линию на горизонтальной гистограмме с помощью ChartJS?
- 20. Создание ярлыков на гистограмме STACKED GROUP в d3.js
- 21. В горизонтальной гистограмме NV D3 как использовать Json в качестве данных?
- 22. Создание горизонтальной легенды с d3.js (v4)
- 23. добавить всплывающую подсказку в штабелированной гистограмме D3
- 24. Создание кластеров в сортируемой гистограмме в D3
- 25. Сетки сетки, не отображаемые в гистограмме D3
- 26. Добавление текстового кончика к гистограмме d3
- 27. Поиск среднего значения баров в гистограмме - d3
- 28. Обновление данных в столбчатой гистограмме D3
- 29. путь не обращается в d3 гистограмме
- 30. Почему текст d3 не отображается на гистограмме при использовании нового набора данных?
Спасибо @cuckovic :) – Preethi