Мне нужно создать сгенерированный файл диаграммы на основе png с метками графика с числовым значением, как вы видите в примере ниже. Я использую Coldfusion 10, поэтому здесь используется более новый движок ZingChart. Пример, который вы видите, был создан с помощью ZingChart Builder.
Кстати, я могу нарисовать базовую диаграмму в файле png, извлечь ее и посмотреть! Я могу правильно расставить X и Y. Я могу представить свою серию в виде легенды, я могу выполнять базовые действия по позиционированию, я могу создавать различные типы диаграмм. Кажется, я ничего не могу сделать с переопределением json, особенно с метками полос графика.
Код, который я предоставляю, взят из примера, который я вырыл из сети, чтобы протестировать... но он должен хорошо потерпеть неудачу (как и весь мой день).
<cfscript>
legend = {
"width":150,
"height":25,
"position":"100% 0%",
"margin-top":10,
"margin-right":10,
"margin-left":10,
"margin-bottom":10,
"layout":"x2",
"alpha":0.5,
"background-color":"##99cc66",
"background-color-2":"##99cc66",
"border-color":"##000000",
"border-width":1,
"shadow":true,
"shadow-alpha":1,
"shadow-color":"##000000",
"shadow-distance":2,
"shadow-blur-x":1,
"shadow-blur-y":1,
"draggable":false,
"minimize":false
};
type ="bar";
plot = {
"value-box":{
"type":"all",
"text":"%v",
"text-align":"center",
"alpha":0.5,
"background-color":"##99cc66",
"background-color-2":"##99cc66",
"border-color":"##000000",
"border-width":1
}
};
</cfscript>
<cfchart
legend="#legend#"
plot="#plot#"
type="#type#"
showlegend="true"
height="300"
width="1300"
title="Super fun time!"
format="png"
name="moreComplexThanChineseArithmetic">
<cfchartseries seriescolor="red" seriesLabel="SeriesA" >
<cfloop from="1" to="10" index="i">
<cfchartdata item="" value="#randRange( 5, 100 )#">
</cfloop>
</cfchartseries>
<cfchartseries seriescolor="green" seriesLabel="SeriesB" >
<cfloop from="1" to="10" index="i">
<cfchartdata item="" value="#randRange( 5, 100 )#">
</cfloop>
</cfchartseries>
<cfchartseries seriescolor="blue" seriesLabel="SeriesC" >
<cfloop from="1" to="10" index="i">
<cfchartdata item="" value="#randRange( 5, 100 )#">
</cfloop>
</cfchartseries>
</cfchart>
<cfset savedFile = getTempFile("/dynamic/coldfusion/temp/", "moreComplexThanChineseArithmetic") & ".png" />
<cfset fileWrite(savedFile, moreComplexThanChineseArithmetic) />
<img src="<cfoutput>#savedFile#</cfoutput>" />
Я нахожусь в кластерной среде, эти диаграммы не обслуживают HTML, поэтому обходной путь png. Кроме того, я должен иметь его как на изображении, потому что изображения масштабируются, и я могу экспортировать в PDF, и он выглядит правильно, а сервер визуализирует и передает его клиенту, поэтому у меня очень небольшие задержки на стороне клиента.
Сейчас. В #plot# и т. д. есть замены переменных... как вы можете видеть выше (я не видел ни одной из этих json-работ, которые я пробовал (весь день) (так много разных способов/комбинаций, чтобы сделать что-то Это либо завершается с ошибкой и (потому что я допустил ошибку), либо ничего не делает (что удивительно).
Могут быть проблемы с этим материалом json выше, но я снова перезаписал изменение за изменением с новыми попытками json, встроенным json тоже, упрощенным и т. д.
Я считаю, что должно произойти то, что значение графика: box text: v% должно (по волшебной магии) возвращать любое значение в параметре значения диаграммы в виде красивого числа выше или ниже полосы (или я ожидал), но он ничего не делает, поэтому я не могу проверить свои ожидания.
Дайте мне знать, если нужны подробности...
PS и к вашему сведению: я не могу работать с другими пакетами для построения графиков.