CFCHART, отображающий числа по оси Y в целом - PullRequest
1 голос
/ 17 апреля 2020

Я пытаюсь использовать cfchart для отображения номеров сообщений, и все работает хорошо, но когда у меня небольшое количество чисел, оно разбивает его на десятичные дроби. Есть ли способ, которым мы можем сделать его всегда целыми числами?

Вот код:

<cfchart format="#display#" type="bar" show3d="no" showlegend="false" chartHeight="300" chartWidth="220">
       <cfchartseries  colorlist="##E18014,green,red" type="bar">
             <cfchartdata item="Calls Made" value="#voice_messages.TotalMessages#">

             <cfchartdata item="Successful" value="#voice_messages.ReceiptsReceived#">
             <cfif #voice_messages.DeliveryFailures# neq "0">
             <cfchartdata item="Bus/No Ans" value="#voice_messages.DeliveryFailures#">
             </cfif>
       </cfchartseries>
</cfchart>

А вот пи c графика

enter image description here

Я просмотрел весь стек и сеть, но ничего не нашел. Любая помощь будет принята с благодарностью.

Спасибо !!

Ответы [ 3 ]

1 голос
/ 17 апреля 2020

<cfchart> имеет атрибут с именем yAxisValues. Он принимает массив значений. В этой ситуации, когда у меня будут данные, я сделаю что-нибудь для создания подходящего массива для использования с этим атрибутом.

0 голосов
/ 21 апреля 2020

Теперь я дам вам другой ответ. Это ответ последней инстанции, поскольку он предполагает изменение настроек сервера ColdFusion. Возможно, причина, по которой вы не можете легко найти его в Интернете. Опять же, пожалуйста, предупредите заранее: это изменение настроек сервера. Итак, сделайте резервную копию ваших файлов!

ColdFusion 2018 (моя версия) использует настройки ZingCharts для настройки стиля в cfcharts. Соответствующие файлы вы найдете в C: \ ColdFusion2018 \ cfusion \ charting \ styles. Вы хотите отредактировать файл стиля для гистограмм.

Откройте в текстовом редакторе файл C: \ ColdFusion2018 \ cfusion \ charting \ styles \ bar. Он имеет формат JSON.

Найдите элемент «scale-y». Он начинается с:

"scale-y": {"format": "% v", "font-size": 16, ... и так далее.

Добавьте к ней пару ключ-значение "десятичные дроби": 0. Результат должен быть:

"scale-y": {"десятичные дроби": 0, "format": "% v "," font-size ": 16, ... и так далее.

Это гарантирует, что ось Y будет иметь 0 десятичных разрядов.

Сохраните файл и перезапустите ColdFusion, чтобы изменения вступили в силу.

Теперь вы настроили ось Y в гистограммах cfchart, чтобы больше не иметь десятичных дробей.

Вы заметили, что элемент "scale-y" является вложенным элементом "graphset". Если вам интересно узнать больше об их настройках, то go до https://www.zingchart.com/docs/api/json-configuration/graphset

0 голосов
/ 19 апреля 2020

Проверьте, являются ли значения данных диаграммы voice_messages.TotalMessages, voice_messages.ReceiptsReceived и являются ли они целыми числами. Используйте что-то вроде:

<cfset displayChart=false>

<cfif    (isNumeric(voice_messages.TotalMessages) and voice_messages.TotalMessages gte 0)
     and (isNumeric(voice_messages.ReceiptsReceived) and voice_messages.ReceiptsReceived gte 0)
     and (isNumeric(voice_messages.DeliveryFailures) and voice_messages.DeliveryFailures gte 0)>

    <cfset numberOfMessages=int(voice_messages.TotalMessages)>
    <cfset numberOfReceipts=int(voice_messages.ReceiptsReceived)>
    <cfset numberOfFailures=int(voice_messages.DeliveryFailures)>

    <cfset displayChart=true>
</cfif>

<cfif displayChart>
    <!--- You may have to increase the chartWidth to make room for all the labels--->
    <cfchart format="png" type="bar" show3d="no" showlegend="false" chartHeight="300" chartWidth="300">
       <cfchartseries  colorlist="##E18014,green,red" type="bar">
             <cfchartdata item="Calls Made" value="#numberOfMessages#">

             <cfchartdata item="Successful" value="#numberOfReceipts#">
             <cfif numberOfFailures neq 0>
                <cfchartdata item="Bus/No Ans" value="#numberOfFailures#">
             </cfif>
       </cfchartseries>
   </cfchart>
<cfelse>
    Sorry, chart cannot be displayed because chartdata are not all integers.
</cfif>

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

...