我需要创建一个生成的基于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#等中有变量替换......正如你在上面所看到的那样(我还没有看到&#39;那些json的东西是我尝试过的(整天)(有很多不同的方式) /组合使事情发生)。它要么失败,要么错误(因为我犯了一个错误),或者什么也没做(这真是太棒了)。
上面的json内容可能存在问题,但是我再一次用新json尝试改变了改变,内联json,简化等等。
我认为应该发生的是情节值:框文本:v%应该(通过仙魔)返回chartdata值参数中的任何值作为条形图上方或下方的一个很好的数字(或者我希望如此),但它没有做任何事情,所以我无法测试我的期望。
如果需要更多细节,请告诉我......
PS和FYI:我无法处理其他图表包。
答案 0 :(得分:2)
你所要做的就是上床睡觉彻底失败,再打一天。
这是解决方案(它附加到chartseries
容器)。 &GT;&GT;&GT;&GT; datalabelstyle="value"
<cfchartseries
datalabelstyle="value"
type="bar"
seriescolor="blue"
seriesLabel="SeriesC" >
<cfloop from="1" to="10" index="i">
<cfchartdata item="" value="#randRange( 5, 100 )#">
</cfloop>
</cfchartseries>
更重要的是。 JSON内容仅适用于format="html"
...它不能与format="png"
一起使用。 format="png"
没有使用zingcharts,它会回退到webcharts3D引擎。 Coldfusion 10有两个图表引擎。我希望这可以帮助那些陷入这种奇怪的人。此外,对于Coldfusion 11,webcharts3d可以工作。 There is a bug discussion that sheds more light on what to do.