Quick StartThe ReportMagic MenuSchedulesBatch JobsReport StudioFilesProfileAdminAccount DetailsMeraki WebHooksGetting StartedAbout ReportMagicRegistering and Logging InSearching ReportMagicConnections and AgentsWriting ReportsStarting Out With Report StudioCreating Report TemplatesRMScriptMacro ShorthandReporting on Different Periods of TimeSetting Macro Parameter DefaultsStoring Input and Output FilesReport VariablesUsing Variable ParametersSpecifying How Graphs LookStep-by-Step LogicMonitor Graph ExamplesStep-by-Step Jira Graph ExamplesSpecifying How Tables LookChanging Fonts and ColorsUsing Macros in PowerPoint TemplatesRestricted MacrosGenerating Reports Using SchedulesUsing HTML Forms in SchedulesSeeing How Reports RanViewing ReportsCached ValuesUsing AggregationsAdvanced Report StudioAPI AccessREST APIREST API - FilesAdvancedRole-Based Access Control (RBAC)SecurityMiscellaneousBadgesCertificationsTips, Tricks and Shortcut KeysMacrosAgentAgent.ConnectionAgent.ExecuteAgent.MonitorMagicNodeListAgent.MonitorMagicNodeMeasurementListAgent.MonitorMagicNodeMeasurementSummaryAgent.MonitorMagicNodePropertyListAgent.MonitorMagicNodeTypeListAgent.PropertyAgent.SqlAnalysisAgent.SqlGraphAgent.SqlListAgent.SqlTableAgent.SqlValueAgent.SqlValuesAgent.WebQueryAlertMagicAlertMagic.MetricsGraphAlertMagic.MetricsListAutoTaskAutoTask.AccountListAutoTask.AccountPropertyAutoTask.ConnectionAutoTask.CountAutoTask.FieldListAutoTask.FieldPropertyAutoTask.ListAutoTask.PropertyAutoTask.SummaryValueAutoTask.TicketListAutoTask.TicketPropertyAzureAzure.ConnectionAzure.LogAnalyticsGraphAzure.LogAnalyticsQueryAzure.LogAnalyticsScalarAzure.LogAnalyticsTableAzure.ResourceGroupListAzure.ResourceListAzure.ResourcePropertiesAzure.SentinelAlertRuleListAzure.SentinelConnectorListAzure.SentinelIncidentListAzure.SentinelThreatIndicatorListAzure.SentinelThreatIndicatorMetricListAzure.SubscriptionListBloggerBlogger.BlogPropertyBlogger.ConnectionBlogger.PageBlogger.PageListBlogger.PagePropertyBlogger.PostBlogger.PostListBlogger.PostPropertyCacheCache.ExpiresCache.GetCache.IsSetCache.SetCache.UnsetCertifyCertify.ConnectionCertify.DepartmentListCertify.DepartmentPropertyCherwellCherwell.BusinessObjectDefinitionListCherwell.BusinessObjectListCherwell.BusinessObjectSchemaCherwell.BusinessObjectSummaryCherwell.ConnectionCiscoCisco.ConnectionCisco.FirmwareVersionPropertyCisco.SecurityAdvisoryListCisco.SerialNumberPropertyCisco.SoftwareSuggestionListCiscoDnaCenterCiscoDnaCenter.ConnectionCiscoDnaCenter.SiteListCiscoDnaCenter.SitePropertyCloudHealthCloudHealth.AssetDetailsCloudHealth.AssetListCloudHealth.AvailableReportDimensionsCloudHealth.AvailableReportOptionsCloudHealth.AvailableReportsListCloudHealth.AwsAccountDetailsCloudHealth.AwsAccountsListCloudHealth.ConnectionCloudHealth.CustomerDetailsCloudHealth.CustomerListCloudHealth.CustomerReportDetailsCloudHealth.CustomerStatementDetailsCloudHealth.OrganisationAccountsListCloudHealth.OrganisationListCloudHealth.QueryConnectWiseManageConnectWiseManage.ConnectionConnectWiseManage.CountConnectWiseManage.DictionaryConnectWiseManage.ListConnectWiseManage.PropertyCoreArrayArray.CountBreakBreakpointCalculateColorCommentContinueConvertDeleteDeleteRowDocumentBookmarkDocumentBreakDocumentInsertSectionDocumentSectionEmailEmailFileEmailReportExecuteForEachFormatTableCellFormatTableRowIfIgnoreIncInsertTableCellImageIsSetLinearRegressionLinkMapObjectRandomRegexRepeatRowSearchAndReplaceSectionSettingsSleepStopStopwatchStringStringIndexSubstringSwitchThrowExceptionUnsetWarningDatabaseDatabase.ConnectionDatabase.GraphDatabase.ListDatabase.TableDatabase.ValueDatabase.ValuesDataMagicDataMagic.SyncDictionaryDictionary.ItemDictionary.KeysDictionary.ValuesDocumentDocument.SetPropertiesFileFile.CopyFile.CopyOutputFilesFile.Csv.CellFile.Csv.RowFile.Csv.RowCountFile.Csv.TableFile.EmbedFile.ExecuteFile.ExistsFile.ImageFile.InsertFile.ListFile.LoadListFile.LoadObjectFile.LoadStringFile.LoadVariablesFile.Xlsx.CellFile.Xlsx.RowFile.Xlsx.RowCountFile.Xlsx.TableFunctionFunction.CallFunction.DefineGoogleGoogle.ConnectionGoogle.TableGraphGraph.AddDataGraph.DeleteDataGraph.RenameDataGraph.UpdateGravatarGravatar.ImageHighlightHighlight.BearerSummaryHighlight.BroadbandSummaryHighlight.CellularSummaryHighlight.ConnectionHighlight.FolderListHighlight.HttpServerPerformanceSummaryHighlight.IcmpTcpUdpPerformanceSummaryHighlight.MosPerformanceSummaryHighlight.PrecisionPerformanceSummaryHighlight.TunnelSummaryHighlight.WatchNodeListHighlight.WirelessAccessPointSummaryHubSpotHubSpot.ListJarrayJarray.TableJiraJira.AttachmentImageJira.AttachmentListJira.AttachmentPropertyJira.ConnectionJira.GraphJira.InsertMarkupJira.IssueAnalysisJira.IssueCommentListJira.IssueCommentPropertyJira.IssueLastCommentPropertyJira.IssueListJira.IssuePropertyJira.IssueResponseTimeJira.LastImageJira.StatusListJira.TableJira.TimeInStateJira.UserListJira.UserPropertyJsonJson.ItemJson.ListKrokiKroki.ImageListList.AddList.AnalysisList.ComplementList.CountList.DequeueList.DuplicatesList.FirstList.GraphList.GroupByList.IndicesOfList.IntersectionList.ItemList.RangeList.SelectList.SelectColumnsList.SortList.SummaryValueList.TableList.UnionList.WhereLogicMonitorLogicMonitor.AccountPropertyLogicMonitor.AlertAnalysisLogicMonitor.AlertCalendarLogicMonitor.AlertCountLogicMonitor.AlertListLogicMonitor.AlertMapLogicMonitor.AlertPropertyLogicMonitor.AlertRuleListLogicMonitor.AlertRulePropertyLogicMonitor.AlertStatusLogicMonitor.AlertTableLogicMonitor.AppliesToFunctionListLogicMonitor.AppliesToFunctionPropertyLogicMonitor.AppliesToListLogicMonitor.AuditEventAnalysisLogicMonitor.BigNumberWidgetValuesLogicMonitor.ClearCacheLogicMonitor.CollectorExecuteLogicMonitor.CollectorGroupListLogicMonitor.CollectorGroupPropertyLogicMonitor.CollectorListLogicMonitor.CollectorPropertyLogicMonitor.CollectorVersionListLogicMonitor.CollectorVersionPropertyLogicMonitor.ConfigCheckListLogicMonitor.ConfigCheckPropertyLogicMonitor.ConfigSourceGroupListLogicMonitor.ConfigSourceListLogicMonitor.ConfigSourcePropertyLogicMonitor.ConfigSourceXmlLogicMonitor.ConnectionLogicMonitor.ConnectionApiTokenLogicMonitor.ConvertToLiveWidgetLogicMonitor.DashboardLogicMonitor.DashboardGroupListLogicMonitor.DashboardGroupPropertyLogicMonitor.DashboardListLogicMonitor.DashboardPropertyLogicMonitor.DashboardWidgetListLogicMonitor.DatamartSyncLogicMonitor.DataPointListLogicMonitor.DataPointPropertyLogicMonitor.DataSourceGraphListLogicMonitor.DataSourceGraphPropertyLogicMonitor.DataSourceGroupListLogicMonitor.DataSourceListLogicMonitor.DataSourcePropertyLogicMonitor.DataSourceXmlLogicMonitor.DeviceConfigSourceFileLogicMonitor.DeviceConfigSourceInstanceListLogicMonitor.DeviceConfigSourceListLogicMonitor.DeviceConfigSourcePropertyLogicMonitor.DeviceCountLogicMonitor.DeviceDataSourceListLogicMonitor.DeviceDataSourcePropertyLogicMonitor.DeviceGroupListLogicMonitor.DeviceGroupPropertyLogicMonitor.DeviceListLogicMonitor.DevicePropertyLogicMonitor.DeviceSlaWidgetPropertyLogicMonitor.DeviceTableLogicMonitor.EscalationChainDestinationListLogicMonitor.EscalationChainDestinationPropertyLogicMonitor.EscalationChainListLogicMonitor.EscalationChainPropertyLogicMonitor.EventSourceFilterListLogicMonitor.EventSourceFilterPropertyLogicMonitor.EventSourceGroupListLogicMonitor.EventSourceListLogicMonitor.EventSourcePropertyLogicMonitor.EventSourceXmlLogicMonitor.FinancialInformationLogicMonitor.ForecastLogicMonitor.GraphLogicMonitor.HistoricSdtListLogicMonitor.ImageLogicMonitor.InstanceAnalysisLogicMonitor.InstanceCountLogicMonitor.InstanceDetailsTableLogicMonitor.InstanceGroupCountLogicMonitor.InstanceGroupListLogicMonitor.InstanceListLogicMonitor.InstancePropertyLogicMonitor.IntegrationListLogicMonitor.IntegrationPropertyLogicMonitor.JobMonitorListLogicMonitor.JobMonitorPropertyLogicMonitor.LastMeasurementLogicMonitor.LogAnalysisLogicMonitor.LogicModuleMetadataPropertyLogicMonitor.LogicModuleUpdateListLogicMonitor.LogicModuleUpdatePropertyLogicMonitor.LogItemListLogicMonitor.NetscanGroupListLogicMonitor.NetscanGroupPropertyLogicMonitor.NetscanListLogicMonitor.NetscanPropertyLogicMonitor.NewUserMessagePropertyLogicMonitor.PaymentInformationLogicMonitor.PercentageAvailabilityLogicMonitor.PortalVersionLogicMonitor.PropertySourceGroupListLogicMonitor.PropertySourceJsonLogicMonitor.PropertySourceListLogicMonitor.PropertySourcePropertyLogicMonitor.QueryLogicMonitor.RecipientGroupListLogicMonitor.RecipientGroupPropertyLogicMonitor.RecycleBinItemListLogicMonitor.RecycleBinItemPropertyLogicMonitor.ReportGroupListLogicMonitor.ReportGroupPropertyLogicMonitor.ReportListLogicMonitor.ReportPropertyLogicMonitor.ResourceAnalysisLogicMonitor.ResourceGroupAnalysisLogicMonitor.RoleListLogicMonitor.RolePropertyLogicMonitor.SdtListLogicMonitor.SdtPercentageLogicMonitor.SdtPropertyLogicMonitor.SingleSignOnPropertyLogicMonitor.SlaWidgetValuesLogicMonitor.SnmpSysOidMapListLogicMonitor.SnmpSysOidMapPropertyLogicMonitor.SummaryValueLogicMonitor.SummaryValueListLogicMonitor.ThresholdLogicMonitor.TrafficTableLogicMonitor.UnmonitoredDeviceListLogicMonitor.UnmonitoredDevicePropertyLogicMonitor.UserApiTokenListLogicMonitor.UserApiTokenPropertyLogicMonitor.UserListLogicMonitor.UserPropertyLogicMonitor.WebsiteCheckpointDataListLogicMonitor.WebsiteCountLogicMonitor.WebsiteGroupAnalysisLogicMonitor.WebsiteGroupCountLogicMonitor.WebsiteGroupListLogicMonitor.WebsiteGroupPropertyLogicMonitor.WebsiteListLogicMonitor.WebsitePropertyLogicMonitor.WidgetStatusMagicSuiteMagicSuite.SubscriptionListMerakiMeraki.CameraImageMeraki.ConfigurationChangeListMeraki.ConnectionMeraki.DevicePropertyMeraki.DeviceUplinkPropertyMeraki.EndOfLifeMeraki.NetworkClientListMeraki.NetworkDeviceListMeraki.NetworkEventListMeraki.NetworkListMeraki.NetworkPropertyMeraki.NetworkSwitchPortsListMeraki.NetworkSwitchStackListMeraki.OrganizationDeviceLicenseListMeraki.OrganizationDeviceLicensePropertyMeraki.OrganizationDeviceListMeraki.OrganizationDeviceListStatusPropertyMeraki.OrganizationInventoryListMeraki.OrganizationLicenseStatePropertyMeraki.OrganizationListMeraki.OrganizationPropertyMeraki.OrganizationUplinkUsageMeraki.WirelessNetworkClientConnectionStatsPropertyMeraki.WirelessNetworkClientLatencyListMeraki.WirelessNetworkClientsConnectionStatsListMeraki.WirelessNetworkClientsLatencyListMeraki.WirelessNetworkConnectionStatsPropertyMeraki.WirelessNetworkDeviceConnectionStatsPropertyMeraki.WirelessNetworkDeviceLatencyListMeraki.WirelessNetworkDevicesConnectionStatsListMeraki.WirelessNetworkDevicesLatencyListMeraki.WirelessNetworkLatencyListMicrosoftDataverseMicrosoftDataverse.ConnectionMicrosoftDataverse.CountMicrosoftDataverse.EntityDefinitionsListMicrosoftDataverse.EntityListMicrosoftDataverse.EntityPropertyListMicrosoftDataverse.ListMicrosoftDataverse.PropertyMicrosoftGraphMicrosoftGraph.ConnectionMicrosoftGraph.MicrosoftDataverseConnectionMicrosoftGraph.QueryObjectObject.ArrayCountObject.PropertyObject.TypeObject.UnpackObject.UnpackVariablesOpenAiOpenAi.AnswerOpenAi.CompleteOpenAi.ConnectionOpenAi.ImageQuickBooksQuickBooks.ConnectionQuickBooks.PropertyReportMagicReportMagic.ApplyBrandReportMagic.BadgeListReportMagic.ConnectionListReportMagic.ConnectionPropertyReportMagic.ConnectionStatusPropertyReportMagic.FeedbackListReportMagic.FeedbackPropertyReportMagic.MacroGroupListReportMagic.MacroHelpReportMagic.MacroListReportMagic.ReportBatchJobCountReportMagic.ReportBatchJobListReportMagic.ReportBatchJobPropertyReportMagic.ReportConnectionSummaryReportMagic.ReportJobCountReportMagic.ReportJobListReportMagic.ReportJobPropertyReportMagic.ReportMacroCountReportMagic.ReportPropertyReportMagic.ReportScheduleCountReportMagic.ReportScheduleListReportMagic.ReportSchedulePropertyReportMagic.SetReportPropertyReportMagic.SystemPropertyReportMagic.TenantImageReportMagic.TopicHelpReportMagic.VersionSalesforceSalesforce.ConnectionSalesforce.ListSalesforce.PropertyServiceNowServiceNow.ConnectionServiceNow.CountServiceNow.CreateServiceNow.DeleteServiceNow.DictionaryServiceNow.ListServiceNow.PropertyServiceNow.UpdateShapeShape.AddShape.CloneShape.DeleteShape.FormatShape.HideShape.SetPropertyShape.SetTextSlackSlack.ConnectionSlack.MessageSlideSlide.DeleteSlide.DeleteSectionSlide.LinkSlide.MoveToSlide.RepeatSmtpSmtp.ConnectionSnmpSnmp.EnterprisePropertySolarWindsSolarWinds.ConnectionSolarWinds.SqlListSolarWinds.SqlTableSqlSql.AnalysisTableTable.ColumnCountTable.DeleteTable.FormatTable.GraphTable.MergeCellsTable.RowCountTable.SaveTable.SortTable.WorldMapTimeCalendarCronHumanReadableCronRunDateDateRangeDateTimeDateTime.IsInWorkHoursDateTime.WorkHoursDurationTimeSpanTogglToggl.ClientListToggl.ClientPropertyToggl.ConnectionToggl.ProjectListToggl.ProjectPropertyToggl.ProjectReportPropertyToggl.TimeEntryListToggl.TimeEntryPropertyToggl.UserListToggl.UserPropertyToggl.WorkspaceListToggl.WorkspacePropertyTwilioTwilio.ConnectionTwilio.SmsUkParliamentUkParliament.PetitionCountUkParliament.PetitionListUkParliament.PetitionPropertyVariableVariable.ImageVariable.ListVariable.PropertyWebWeb.ConnectionWeb.HtmlWeb.ImageWeb.QueryWeb.ScreenshotWeb.TableWeb.TextXlsxXlsx.AddAnalysisXlsx.EmbedZendeskZendesk.ConnectionZendesk.ListZendesk.PropertyZoho.DeskZoho.Desk.ZohoListZoho.Desk.ZohoProperty
Specifying How Graphs Look
What Graphs Can I Produce?
There are a number of different graph types available in ReportMagic with different types of graph suiting different types of data:
- Line, Area, Spline, Bubble and Step Line graph types work best with timeseries data
- Pie, Doughnut, Bar and Column take category data
- Other types available include: Point, FastPoint, FastLine, Bar, StackedBar, StackedBar100, StackedColumn, StackedColumn100, Area, SplineArea, StackedArea, StackedArea100, Radar, Polar, BoxPlot, Funnel and Pyramid.
Much of your data will originate from tables - data returned by an SQL query, a list from a CSV file or a range from an Excel spreadsheet and while it is tempting to just show as a table in your report, with little effort, you can display it graphically to show the contents more clearly.
Use these macros to produce graphs:
- [Agent.SqlGraph:] - when you have a connection to a SQL server and want to plot results returned by an SQL query
- [Database.Graph:] - when you have a connection to a database and want to plot SQL data
- [Jira.Graph:] - when you have a connection to Jira and want to plot results returned by a JQL statement
- [List.Graph:] - a general purpose graph macro using data from the values parameter
- [LogicMonitor.Graph:] - for graphing your LogicMonitor data
- [Table.Graph:] - displays a graph based on a table that immediately precedes it
Graphing Table Data
Starting with a simple example, data in this table is transformed into a graph using the [Table.Graph:] macro immediately below the table,
DateTime
|
DurationMs
|
2019-01-01
|
523
|
2019-01-02
|
710
|
2019-01-03
|
692
|
2019-01-04
|
584
|
[Table.Graph: chartType=Line, yAxisLabel="Duration MS", chartWidth=600, chartHeight=200, xAxisFontSize=8, yAxisFontSize=8, yAxisWidthPercent=20, legendWidthPercent=20, legendFontSize=8]
producing this Line graph:
Play around with changing the above chartType to Area, Spline (curved line), Spline Area, Bubble and Step Line.
If your table has been automatically generated by ReportMagic and you want ONLY to display the graphs and not the table, use the [List.Graph:] macro.
[List.Graph: chartType=Line, values=Element^Line1^Line2;1^2^3;2^4^6;3^6^9;4^8^12;5^10^15, xAxisLabel=Value, yAxisLabel=Element, chartWidth=600, chartHeight=200, xAxisFontSize=8, yAxisFontSize=8, yAxisWidthPercent=15, legendWidthPercent=15, chartAreaWidthPercent=70, chartAreaXPosition=5, chartAreaHeightPercent=75, chartAreaYPosition=15, legendFontSize=8]
We now have:
Graphing List Data
The [List.Graph:] macro produces a graph from the contents of a list using the values parameter. In the following example, think of the list in the values parameter as a table with the caret acting as a field delimiter and the semi-colon acting as the row delimiter. The first three entries "Element^Line1^Line2" are the column headings and Line1 & Line2 are treated as the graph labels:
This example produces:
Example of Changing How the X Axis is Displayed on a Column Graph
The [List.Graph:] lets you graph list and list of lists data structures. Column, Line, and Area graphs show data grouped by category or time period (the first Column) with the remaining columns being data sets to be shown on the graph. Suppose we have the following set of data containing numbers of tickets by type raised each month:
Legacy style:
[: `Month^Incidents^Problems^Service Requests^Change Requests;Jan 22^15^13^5^7;Feb 22^12^5^7^7;Mar 22^14^7^7^9;Apr 22^13^20^7^3;May 22^15^15^6^7;Jun 22^21^22^4^5;Jul 22^15^9^7^3;Aug 22^21^17^11^3;Sep 22^15^8^9^3;Oct 22^15^11^8^4;Nov 22^11^10^5^3;Dec 22^9^5^1^3`, =>GraphData]
or in List of Lists style:
[=: `list(list('Month','Incidents','Problems','Service Requests','Change Requests'),list('Jan 22',15,13,5,7),list('Feb 22',12,5,7,7),list('Mar 22',14,7,7,9),list('Apr 22',13,20,7,3),list('May 22',15,15,6,7),list('Jun 22',21,22,4,5),list('Jul 22',15,9,7,3),list('Aug 22',21,17,11,3),list('Sep 22',15,8,9,3),list('Oct 22',15,11,8,4),list('Nov 22',11,10,5,3),list('Dec 22',9,5,1,3))`,=>GraphData]
If we want a column graph, [List.Graph: values={=GraphData}, chartTypes=Column]produces a graph that is difficult to read, because ReportMagic assumes we want to have a time series graph and doesn't show all dates on the X Axis.
So let's add the xValueType=String parameter so the macro treats the first column as strings, not dates and will change how the xAxis values display, and we will also use xAxisIntervalAutoMode=VariableCount to tell the macro to display all the values.
[List.Graph: values={=GraphData}, chartTypes=Column, xValueType=String, xAxisIntervalAutoMode=VariableCount]
That is better:
Tip: Use the [Settings:] macro to define properties in advance of your graph macros. This makes individual macros easier to read and ensures that your graphs have the same style throughout your document.
We can make further improvements to the graph above by making the graph the full width of the page and moving the legend to below. To be able to successfully do this we need to understand positioning.
Understanding Graph Positioning with a Column Chart Type
Lets add some background colour so we can see the positioning of everything:
[Settings:
List.Graph.chartAreaBackgroundColor=Yellow,
List.Graph.legendBackgroundColor=Cyan,
List.Graph.chartBackgroundColor=Green,
List.Graph.xValueType=String,
List.Graph.xAxisIntervalAutoMode=VariableCount,
List.Graph.xAxisInterval=1
]
[List.Graph: values={=GraphData}, chartTypes=Column]
You can see that if we want to move the legend (in cyan) under the chart, we will need to:
Reduce the height of the chartArea (in yellow) which we can do with chartAreaHeightPercent=90, setting the height of the legend to the remaining 10%. We can then change the width of the chartArea and the legend to take up all the space across the page, with chartAreaWidthPercent=100 and legendWidthPercent=100. Finally, we can move the legend and change the style to row with legendXPosition=0, legendYPosition=90 and legendStyle=Row. Here's the [Settings:] macro with those parameters set:
 
[Settings:
List.Graph.chartAreaBackgroundColor=Yellow,
List.Graph.legendBackgroundColor=Cyan,
List.Graph.chartBackgroundColor=Green,
List.Graph.xValueType=String,
List.Graph.xAxisIntervalAutoMode=VariableCount,
List.Graph.xAxisInterval=1,
List.Graph.chartAreaHeightPercent=90,
List.Graph.legendHeightPercent=10,
List.Graph.chartAreaWidthPercent=100,
List.Graph.legendWidthPercent=100,
List.Graph.legendXPosition=0,
List.Graph.legendYPosition=90,
List.Graph.legendStyle=Row
]
[List.Graph: values={=GraphData}, chartTypes=Column] now produces a graph like this:
Let's improve the whole thing by adding:
List.Graph.chartHeight=550
List.Graph.chartWidth=1200
List.Graph.yAxisFontSize=12
List.Graph.xAxisFontSize=12
List.Graph.legendFontSize=12
remove the minor grids and the xAxis Major grid with:
List.Graph.xAxisMajorGridEnabled=false
List.Graph.xAxisMinorGridEnabled=false
List.Graph.yAxisMinorGridEnabled=false
and remove the line about background colour.
So our final macros are:
[Settings:
List.Graph.xValueType=String,
List.Graph.xAxisIntervalAutoMode=VariableCount,
List.Graph.xAxisInterval=1,
List.Graph.chartAreaHeightPercent=90,
List.Graph.legendHeightPercent=10,
List.Graph.chartAreaWidthPercent=100,
List.Graph.legendWidthPercent=100,
List.Graph.legendXPosition=0,
List.Graph.legendYPosition=90,
List.Graph.legendStyle=Row,
List.Graph.chartHeight=550,
List.Graph.chartWidth=1200,
List.Graph.yAxisFontSize=12,
List.Graph.xAxisFontSize=12,
List.Graph.legendFontSize=12,
List.Graph.xAxisMajorGridEnabled=false,
List.Graph.xAxisMinorGridEnabled=false,
List.Graph.yAxisMinorGridEnabled=false
]
[List.Graph: values={=GraphData}, chartTypes=Column]
and produce a chart like this:
If you then decided you preferred a different chart type, use the chartTypes parameter to produce, for example, a StackedColumn or Area chart:
or use different chartTypes for each data column.
[List.Graph: values={=GraphData}, chartTypes=Column;Column;Line;Line]
produces:
Customizing Pie and Doughnut Graphs
Pie and Doughnut charts use two columns - the first providing the slice name, the second column the slice size. Copy this simple data to Report Studio in whichever mode you prefer:
Legacy Mode [: `One^5;Two^12;Three^24`, =>GraphData] or Normal Mode [=: `list(list('One',5),list('Two',12),list('Three',24))`,=>GraphData]
and this macro:
[List.Graph: values={=GraphData}, chartTypes=Pie, palette=One^Red;Two^Blue;Three^#0f0]
to give this initial graph:
Now play around with pieStartAngleDegrees=270 and move the position of the data labels with pieLabelStyle=Outside to give:
Have fun playing with Doughnut, Funnel, Pyramid, Radars and more types of chart.
Making 3d Graphs
All graphs can be displayed in 3D enabling you to change the perspective, incline, rotation, point depth (depth of the graph) and the point gap depth (how deep the points are):
using the data from the table at the top of this page, the exact same line macro, but with 3D enabled, will produce:
Note that the x axis labels for each interval no longer appear - because the x axis angle has changed meaning that the labels are now displayed closer together and the interval has been increased to make them fit without overlapping. This can be fixed by increasing the chartWidth or adding xAxisIntervalAutoMode=VariableCount.
When enable3d is set to true, the default inclination is 50 degrees. Valid values for the incline are from -90 to +90 degrees, so for example, to change the incline to 20 degrees, add inclination3dDegrees=20.
When enable3d is set to true, the default perspective is 0 percent. Valid values for perspective are from 0 to 100. To change the perspective to 10%, add perspective3dPercent=10.
When enable3d is set to true the default rotation is 30 degrees. Valid values for rotation are from -90 to +90. To change to rotation to 50 degrees, add rotation3dDegrees=50:
When enable3d is set to true the default point depth is 100. Valid values are from 0 to 1000%.
To decrease the depth of the graph to 10% add pointDepth3dPercent=10. To increase the depth of the graph to 500% add pointDepth3dPercent=500
When enable3d is set to true the default gap depth on the points is 100 with valid values from 0 to 1000. To decrease the depth of the point line to 20% add pointGapDepth3dPercent=20
Change the depth of the graph to emphasis the narrowness of the point line by increasing the depth of the graph to 500% by adding both pointDepth3dPercent=500 and pointGapDepth3dPercent=20
Two Examples to Copy
If you'd like to dive right in, here are two graph macros you can copy into ReportStudio, run them and have a play around changing the options.
A 2d graph
[List.Graph: values=SubIssue^Count^Max;Voice-MAC^8^2;Voice Issue^4^6;MAC^4^3;Voice^5^7;Network^28^20;VMware^11000^3;Storage^13^3;Server-OS^14^3;Server-Application^4^3;Server-Hardware^3^3;Infra-Backup-Restore^6^3;Security^13^3, chartTypes=StackedArea, yAxisTitle=My Y Axis Title, yAxisFontSize=25, palette=Count^Green;Max^Red, yAxisMajorGridEnabled=false, xAxisLabelAngle=0, xAxisIntervalAutoMode=FixedCount, xAxisMajorGridIntervalType=Number, xAxisMajorGridInterval=2, xAxisMajorGridEnabled=true, xAxisMinorGridEnabled=false, xAxisIsAutoFit=True, xAxisInterval=1, labelFontSize=15, labelColor=Red, labelBackgroundColor=White, enable3d=false, inclination3dDegrees=20, perspective3dPercent=30, rotation3dDegrees=70, pointDepth3dPercent=100, legendBackgroundColor=Pink, legendBorderColor=black, legendFontSize=32, legendXPosition=0, legendYPosition=80, legendHeightPercent=20, legendWidthPercent=100, legendStyle=Table, chartAreaBackgroundColor=Yellow, chartBackgroundColor=LightBlue, chartAreaHeightPercent=70, chartAreaWidthPercent=100, useYAxisShortLabels=true, xAxisTitle=My X Axis Title, xAxisFontSize=25,innerPlotXPosition=30, innerPlotWidthPercent=50, innerPlotYPosition=20, innerPlotHeightPercent=50, fixedLines=Midpoint^5000^#00ff00, chartHeight=1500, chartWidth=2000, chartBorderLineWidth=10, ChartBorderLineDashStyle=DashDot, labels=CHART BACKGROUND^0^0^BottomLeft^Calibri^32^Bold^#7D3189;LEGEND^20^20^BottomLeft^Calibri^32^Bold^#7D3189]
A 3d graph
A 3d graph
[List.Graph: values=SubIssue^Count^Max;Voice-MAC^8^2;Voice Issue^4^6;MAC^4^3;Voice^5^7;Network^28^20;VMware^11000^3;Storage^13^3;Server-OS^14^3;Server-Application^4^3;Server-Hardware^3^3;Infra-Backup-Restore^6^3;Security^13^3, chartTypes=StackedArea, yAxisTitle=My Y Axis Title, yAxisFontSize=25, palette=Count^Green;Max^Red, yAxisMajorGridEnabled=false, xAxisLabelAngle=0, xAxisIntervalAutoMode=FixedCount, xAxisMajorGridIntervalType=Number, xAxisMajorGridInterval=2, xAxisMajorGridEnabled=true, xAxisMinorGridEnabled=false, xAxisIsAutoFit=True, xAxisInterval=4, labelFontSize=15, labelColor=Red, labelBackgroundColor=White, enable3d=true, inclination3dDegrees=-20, perspective3dPercent=60, rotation3dDegrees=30, pointDepth3dPercent=100, legendBackgroundColor=Pink, legendBorderColor=blue, legendFontSize=32, legendXPosition=0, legendYPosition=100, legendHeightPercent=10, legendWidthPercent=80, legendStyle=Table, chartAreaBackgroundColor=Yellow, chartBackgroundColor=LightBlue, chartAreaHeightPercent=70, chartAreaWidthPercent=100, useYAxisShortLabels=true, xAxisTitle=My X Axis Title, xAxisFontSize=25,innerPlotXPosition=10, innerPlotWidthPercent=100, innerPlotYPosition=10, innerPlotHeightPercent=100, fixedLines=Midpoint^5000^#00ff00, chartHeight=1500, chartWidth=2000, chartBorderLineWidth=10, ChartBorderLineDashStyle=DashDot, labels=CHART BACKGROUND^0^0^BottomLeft^Calibri^32^Bold^#7D3189;LEGEND^20^20^BottomLeft^Calibri^32^Bold^#7D3189]
LogicMonitor Graphs
If you have defined a connection to your LogicMonitor portal, use the [LogicMonitor.Graph:]
to display graphs, overview graphs and netflow graphs.
Unlike the other graph macros, [LogicMonitor.Graph:] retrieves graphs which already exist in LogicMonitor; if something you wish to display as a graph does not exist, you will need to create the graph in LogicMonitor itself first.
However, if the data you are interested in displaying can be retrieved as a list or a table using other LogicMonitor macros, then you can then display the content of the table or list graphically using [Table.Graph:] and [List.Graph:].
Summary of Graph Parameters
The sections of a ReportMagic graph and the parameters that control them are:Page
This area is controlled by parameters such as:
- pageWidthPercent
This area is controlled by parameters such as:
- legendWidthPercent
- legendHeightPercent
- legendXPosition
- legendYPosition
This area is controlled by parameters such as:
- chartWidth
- chartAreaXPosition
- chartAreaYPosition
- chartAreaHeightPercent
- chartAreaWidthPercent
- chartAreaBackgroundColor – colors in the area of the chart covering where axes go up to and across to. (think of this as the inner plot background color)
- chartBackgroundColor – colors in the area of the chart AND the axes and surrounding the chart.
This area is controlled by parameters such as:
- innerPlotWidthPercent