| Type: | Package |
| Title: | Enhanced Office Open XML Charting for 'openxlsx2' |
| Version: | 0.9 |
| Language: | en-US |
| Description: | Provides a high-level 'R6' interface for creating complex Office Open XML (OOXML) charts. Allows users to build multi-series combo charts with secondary axes and granular styling options, designed to integrate seamlessly with 'openxlsx2'. |
| License: | MIT + file LICENSE |
| URL: | https://janmarvin.github.io/encharter/, https://github.com/JanMarvin/encharter |
| BugReports: | https://github.com/JanMarvin/encharter/issues |
| Encoding: | UTF-8 |
| LinkingTo: | openxlsx2 |
| Imports: | R6, openxlsx2 (≥ 1.26) |
| Suggests: | testthat (≥ 3.0.0), viridisLite |
| Config/testthat/edition: | 3 |
| Config/roxygen2/version: | 7.3.3.9000 |
| RoxygenNote: | 7.3.3 |
| NeedsCompilation: | yes |
| Packaged: | 2026-04-28 20:26:08 UTC; janmarvingarbuszus |
| Author: | Jan Marvin Garbuszus [aut, cre] |
| Maintainer: | Jan Marvin Garbuszus <jan.garbuszus@ruhr-uni-bochum.de> |
| Repository: | CRAN |
| Date/Publication: | 2026-04-29 18:30:08 UTC |
Encharter Base R6 Class
Description
Abstract base class inherited by Chart and ChartEx. Holds all
shared fields (palette, titles, axis params, legend/label settings) and the
shared private helpers (render_color_core, render_color,
set_axis_params, validate_input).
Users should not instantiate EncharterBase directly; use
encharter() instead.
Public fields
xmlThe raw xml2 object containing the chart space.
series_dataA list containing all added data series and their styles.
typeThe default chart type for the object (e.g.,
"lineChart").paletteA character vector of six-digit hex colors used for series when no explicit color is supplied. Defaults to the standard Office theme palette.
chart_titleNamed list with elements
text(character) andstyle(list of font/fill/line options) for the main chart title.x_titleNamed list with elements
textandstylefor the primary X-axis title.y_titleNamed list with elements
textandstylefor the primary Y-axis title.chart_styleNamed list controlling the outer chart area:
fill(hex),line(hex),line_width(numeric).plot_styleNamed list controlling the inner plot area:
fill(hex),line(hex),line_width(numeric).label_paramsNamed list of global data label defaults:
show_val,show_cat,show_legend_key(logicals),pos(character),style(list).legend_paramsNamed list of legend defaults:
pos(character),overlay("0"/"1"),style(list).axis_paramsNamed list with one entry per axis (
x,x2,y,y2). Each entry is a named list of scaling, formatting, and style parameters. Modified via$set_x_axis(), etc.
Methods
Public methods
Method set_chart_title()
Set the chart's main title.
Usage
EncharterBase$set_chart_title( text, font_size = NULL, font_name = NULL, font_color = NULL, bold = NULL, italic = NULL, fill = NULL, line = NULL, line_width = NULL )
Arguments
textTitle string. Accepts a plain character or an
openxlsx2::fmt_txt()object for rich-text formatting.font_sizeNumeric font size in points (e.g.
14).font_nameFont typeface name (e.g.
"Arial").font_colorSix-digit hex color for the title text (e.g.
"FF0000"for red).boldLogical;
TRUErenders the title in bold.italicLogical;
TRUErenders the title in italics.fillSix-digit hex color for the title background box.
lineSix-digit hex color for the title border.
line_widthNumeric border width in points.
Examples
ec("line")$set_chart_title("Monthly Sales", font_size = 14, bold = TRUE)
Method set_x_title()
Set the primary X-axis title.
Usage
EncharterBase$set_x_title( text, font_size = NULL, font_name = NULL, font_color = NULL, bold = NULL, italic = NULL, fill = NULL, line = NULL, line_width = NULL )
Arguments
textTitle string.
font_sizeNumeric font size in points.
font_nameFont typeface name.
font_colorSix-digit hex color for the title text.
boldLogical.
italicLogical.
fillSix-digit hex color for the title background box.
lineSix-digit hex color for the title border.
line_widthNumeric border width in points.
Examples
ec("line")$set_x_title("Month", font_color = "888888", italic = TRUE)
Method set_y_title()
Set the primary Y-axis title.
Usage
EncharterBase$set_y_title( text, font_size = NULL, font_name = NULL, font_color = NULL, bold = NULL, italic = NULL, fill = NULL, line = NULL, line_width = NULL )
Arguments
textTitle string.
font_sizeNumeric font size in points.
font_nameFont typeface name.
font_colorSix-digit hex color for the title text.
boldLogical.
italicLogical.
fillSix-digit hex color for the title background box.
lineSix-digit hex color for the title border.
line_widthNumeric border width in points.
Examples
ec("line")$set_y_title("Revenue (USD)", bold = TRUE)
Method set_x_axis()
Set primary X-axis scaling, tick marks, and label formatting.
Usage
EncharterBase$set_x_axis( min = NULL, max = NULL, major = NULL, minor = NULL, major_time = NULL, minor_time = NULL, base_time = NULL, major_tick = NULL, minor_tick = NULL, format = NULL, log_base = NULL, color = NULL, font_name = NULL, font_size = NULL, bold = NULL, italic = NULL, font_color = NULL, rotation = NULL, grid_color = NULL, grid_lines = NULL, minor_grid_color = NULL, minor_grid_lines = NULL, cross_between = NULL, line_width = NULL, grid_width = NULL, minor_grid_width = NULL, crosses = NULL, crosses_at = NULL, label_pos = NULL )
Arguments
min, maxNumeric axis limits.
major, minorNumeric major/minor unit intervals. For date axes, unit is set by
major_time/minor_time.major_time, minor_timeTime unit for major/minor steps on date axes:
"days","months", or"years".base_timeBase time unit for date axes:
"days","months", or"years".major_tick, minor_tickTick mark style:
"cross","in","out", or"none".formatNumber or date format string (e.g.
"#,##0","yyyy-mm-dd").log_baseNumeric base for logarithmic scaling (e.g.
10).colorSix-digit hex color for the axis line.
font_nameFont typeface name for tick labels.
font_sizeNumeric label font size in points.
bold, italicLogical font style for tick labels.
font_colorSix-digit hex color for axis tick labels. Defaults to
colorwhen not set.rotationNumeric label rotation in degrees.
grid_color, minor_grid_colorSix-digit hex colors for major/minor grid_lines.
grid_lines, minor_grid_linesShow grid lines.
TRUE/FALSEto toggle; or a dash style string ("dash","dot","dashDot", etc.) to show styled lines.cross_betweenWhere the value axis crosses:
"between"(default, between categories) or"midCat"(through categories).line_width, grid_width, minor_grid_widthNumeric widths in points for the axis line, major grid lines, and minor grid lines respectively.
crossesWhere this axis crosses its perpendicular axis:
"autoZero"(default),"min", or"max".crosses_atNumeric axis value at which to cross. Overrides
crosseswhen supplied.label_posTick label position:
"nextTo"(default),"high","low", or"none".
Examples
ec("line")$set_x_axis(
min = 0, max = 12,
major_tick = "out",
grid_lines = TRUE,
font_color = "666666",
rotation = -45
)
Method set_y_axis()
Set primary Y-axis scaling, tick marks, and label formatting.
Usage
EncharterBase$set_y_axis( min = NULL, max = NULL, major = NULL, minor = NULL, major_time = NULL, minor_time = NULL, base_time = NULL, major_tick = NULL, minor_tick = NULL, format = NULL, log_base = NULL, color = NULL, font_name = NULL, font_size = NULL, bold = NULL, italic = NULL, font_color = NULL, rotation = NULL, grid_color = NULL, grid_lines = NULL, minor_grid_color = NULL, minor_grid_lines = NULL, cross_between = NULL, line_width = NULL, grid_width = NULL, minor_grid_width = NULL, crosses = NULL, crosses_at = NULL, label_pos = NULL )
Arguments
min, maxNumeric axis limits.
major, minorNumeric major/minor unit intervals.
major_time, minor_timeTime unit for date axes:
"days","months", or"years".base_timeBase time unit for date axes.
major_tick, minor_tickTick mark style:
"cross","in","out", or"none".formatNumber format string.
log_baseNumeric base for logarithmic scaling.
colorSix-digit hex color for the axis line.
font_nameFont typeface name.
font_sizeNumeric label font size in points.
bold, italicLogical font style.
font_colorSix-digit hex color for axis tick labels.
rotationNumeric label rotation in degrees.
grid_color, minor_grid_colorHex colors for major/minor grid lines.
grid_lines, minor_grid_linesTRUE/FALSEor a dash style string.cross_between"between"or"midCat".line_width, grid_width, minor_grid_widthNumeric widths in points.
crosses"autoZero","min", or"max".crosses_atNumeric crossing value; overrides
crosses.label_pos"nextTo","high","low", or"none".
Examples
ec("bar")$set_y_axis(
min = 0,
max = 1000,
major = 200,
format = "#,##0",
grid_lines = TRUE,
grid_color = "DDDDDD"
)
Method set_data_label_style()
Configure global data label defaults for all series.
Per-series overrides can be set via the show_val/show_cat
arguments in $add_series().
Usage
EncharterBase$set_data_label_style( show_val = TRUE, show_cat = FALSE, show_legend_key = FALSE, pos = "t", ... )
Arguments
show_valLogical; show the data point value. Default
TRUE.show_catLogical; show the category name. Default
FALSE.show_legend_keyLogical; show the series color swatch next to each label. Default
FALSE.posLabel position:
"t"(top, default),"b"(bottom),"l","r","ctr","inEnd","outEnd","bestFit"....Additional font style arguments passed to the label text properties (e.g.
font_size,font_color,bold).
Examples
ec("bar")$set_data_label_style(show_val = TRUE, pos = "outEnd", font_size = 9)
Method set_legend_style()
Configure the chart legend.
Usage
EncharterBase$set_legend_style( pos = "t", align = "ctr", overlay = FALSE, font_size = NULL, font_name = NULL, bold = NULL, italic = NULL, color = NULL )
Arguments
posLegend position:
"t","b","l","r"(default), or"none"to hide.alignLegend alignment relative to the chart:
"ctr"(default),"min", or"max".overlayLogical; if
TRUEthe legend overlaps the plot area.font_sizeNumeric font size in points.
font_nameFont typeface name.
bold, italicLogical font style.
colorSix-digit hex color for the legend text.
Examples
ec("line")$set_legend_style(pos = "b", font_size = 9)
Method set_chart_style()
Style the outer chart area (background and border).
Usage
EncharterBase$set_chart_style(fill = "FFFFFF", line = NULL, line_width = 1)
Arguments
fillSix-digit hex color for the chart background. Default
"FFFFFF".lineSix-digit hex color for the chart border.
NULLfor no border.line_widthNumeric border width in points. Default
1.
Examples
ec("bar")$set_chart_style(fill = "F5F5F5", line = "CCCCCC", line_width = 0.5)
Method set_plot_style()
Style the inner plot area (background and border).
Usage
EncharterBase$set_plot_style(fill = NULL, line = NULL, line_width = 1)
Arguments
fillSix-digit hex color for the plot area background.
NULLfor transparent.lineSix-digit hex color for the plot area border.
line_widthNumeric border width in points. Default
1.
Examples
ec("line")$set_plot_style(fill = "FAFAFA")
Method print()
Print a summary of the chart object.
Usage
EncharterBase$print()
Examples
ec("line")
Method clone()
The objects of this class are cloneable with this method.
Usage
EncharterBase$clone(deep = FALSE)
Arguments
deepWhether to make a deep clone.
Examples
## ------------------------------------------------
## Method `EncharterBase$set_chart_title`
## ------------------------------------------------
ec("line")$set_chart_title("Monthly Sales", font_size = 14, bold = TRUE)
## ------------------------------------------------
## Method `EncharterBase$set_x_title`
## ------------------------------------------------
ec("line")$set_x_title("Month", font_color = "888888", italic = TRUE)
## ------------------------------------------------
## Method `EncharterBase$set_y_title`
## ------------------------------------------------
ec("line")$set_y_title("Revenue (USD)", bold = TRUE)
## ------------------------------------------------
## Method `EncharterBase$set_x_axis`
## ------------------------------------------------
ec("line")$set_x_axis(
min = 0, max = 12,
major_tick = "out",
grid_lines = TRUE,
font_color = "666666",
rotation = -45
)
## ------------------------------------------------
## Method `EncharterBase$set_y_axis`
## ------------------------------------------------
ec("bar")$set_y_axis(
min = 0,
max = 1000,
major = 200,
format = "#,##0",
grid_lines = TRUE,
grid_color = "DDDDDD"
)
## ------------------------------------------------
## Method `EncharterBase$set_data_label_style`
## ------------------------------------------------
ec("bar")$set_data_label_style(show_val = TRUE, pos = "outEnd", font_size = 9)
## ------------------------------------------------
## Method `EncharterBase$set_legend_style`
## ------------------------------------------------
ec("line")$set_legend_style(pos = "b", font_size = 9)
## ------------------------------------------------
## Method `EncharterBase$set_chart_style`
## ------------------------------------------------
ec("bar")$set_chart_style(fill = "F5F5F5", line = "CCCCCC", line_width = 0.5)
## ------------------------------------------------
## Method `EncharterBase$set_plot_style`
## ------------------------------------------------
ec("line")$set_plot_style(fill = "FAFAFA")
## ------------------------------------------------
## Method `EncharterBase$print`
## ------------------------------------------------
ec("line")
Create an Encharter Chart
Description
Factory function that initialises an R6 chart object. Returns a Chart
object for standard OOXML chart types (bar, line, scatter, ...) or a
ChartEx object for modern extended chart types (waterfall, treemap, ...).
The Chart class provides a flexible interface to build Office OpenXML
(OOXML) chart objects. It allows for granular control over grid lines,
secondary axes, and combined chart types (e.g., Bar and Line) within a
single plot area.
An R6 class to create and manipulate Office OpenXML (OOXML) Extended Charts (ChartEx), including Waterfall, Sunburst, Treemap, and Region Maps, which are not supported by standard Office Open XML chart types.
Usage
encharter(type = "lineChart")
ec(type = "lineChart")
Arguments
type |
A character string specifying the chart type. Common R-style aliases are accepted (see Details). |
Details
Supported Chart Types:
-
Bar/Column:
"barChart","barplot","hist","histogram" -
Line/Area:
"lineChart","line","areaChart","area" -
Scatter:
"scatterChart","scatter","point" -
Pie/Doughnut:
"pieChart","pie","doughnutChart","doughnut" -
Extended (ChartEx):
"waterfall","treemap","sunburst","regionMap","boxWhisker"/"boxplot","funnel"
Bar vs Column direction:
For bar/column charts, orientation is set via the dir argument in
$add_series(): "col" (vertical, default) or "bar"
(horizontal).
This class is designed to work with the openxlsx2 package by generating
the underlying XML required for the add_chart_xml method.
This class uses XML to manipulate the underlying XML structure and
integrates with openxlsx2 for workbook generation.
Value
An R6 object of class Chart or ChartEx.
Super class
encharter::EncharterBase -> Chart
Public fields
x2_titleList containing text and style for the secondary X-axis.
y2_titleList containing text and style for the secondary Y-axis.
first_slice_angInteger. Rotation of the first slice (0-360).
expansionInteger. Size of the expansion for pie charts.
hole_sizeInteger. Size of the hole for doughnut charts (0-90).
show_data_tableLogical if a data table should be added.
drop_linesLogical; show lines from points to the axis.
high_low_linesLogical; show lines between max/min points.
up_down_barsLogical; show bars between first and last series.
bubble_scaleNumeric; the scale factor for bubbles (default 100).
show_neg_bubblesLogical; whether to show bubbles with negative values.
disp_blanks_asCharacter; "gap", "span", or "zero".
Methods
Public methods
Inherited methods
encharter::EncharterBase$print()encharter::EncharterBase$set_chart_style()encharter::EncharterBase$set_chart_title()encharter::EncharterBase$set_data_label_style()encharter::EncharterBase$set_legend_style()encharter::EncharterBase$set_plot_style()encharter::EncharterBase$set_x_axis()encharter::EncharterBase$set_x_title()encharter::EncharterBase$set_y_axis()encharter::EncharterBase$set_y_title()
Method new()
Initialize a new Chart object.
Usage
Chart$new(type = NULL)
Arguments
typeInitial chart type (e.g., "lineChart", "barChart", "pieChart").
Method set_x2_title()
Set the secondary X-axis title.
Only takes effect if at least one series has been assigned to the
secondary X-axis via add_series(secondary = "x"). Issues a warning
and returns self silently otherwise.
Usage
Chart$set_x2_title( text, font_size = NULL, font_name = NULL, font_color = NULL, bold = NULL, italic = NULL, fill = NULL, line = NULL, line_width = NULL )
Arguments
textTitle string.
font_sizeNumeric font size in points.
font_nameFont typeface name.
font_colorSix-digit hex color for the title text.
bold, italicLogical font style.
fillSix-digit hex color for the title background box.
lineSix-digit hex color for the title border.
line_widthNumeric border width in points.
Examples
ec("scatter")$
add_series(data = "Sheet1!A1:A10", secondary = "x")$
set_x2_title("Secondary X", font_color = "888888")
Method set_y2_title()
Set the secondary Y-axis title.
Only takes effect if at least one series has been assigned to the
secondary Y-axis via add_series(secondary = TRUE) or
secondary = "y". Issues a warning otherwise.
Usage
Chart$set_y2_title( text, font_size = NULL, font_name = NULL, font_color = NULL, bold = NULL, italic = NULL, fill = NULL, line = NULL, line_width = NULL )
Arguments
textTitle string.
font_sizeNumeric font size in points.
font_nameFont typeface name.
font_colorSix-digit hex color for the title text.
bold, italicLogical font style.
fillSix-digit hex color for the title background box.
lineSix-digit hex color for the title border.
line_widthNumeric border width in points.
Examples
ec("line")$
add_series(data = "Sheet1!A1:A10")$
add_series(data = "Sheet1!B1:B10", secondary = TRUE)$
set_y2_title("Growth Rate (%)")
Method set_y2_axis()
Set Secondary Y-axis scaling, units, and format.
Usage
Chart$set_y2_axis( min = NULL, max = NULL, major = NULL, minor = NULL, major_time = NULL, minor_time = NULL, base_time = NULL, major_tick = NULL, minor_tick = NULL, format = NULL, log_base = NULL, color = NULL, font_name = NULL, font_size = NULL, bold = NULL, italic = NULL, font_color = NULL, rotation = NULL, grid_color = NULL, grid_lines = NULL, minor_grid_color = NULL, minor_grid_lines = NULL, cross_between = NULL, line_width = NULL, grid_width = NULL, minor_grid_width = NULL, crosses = "max", crosses_at = NULL, label_pos = NULL )
Arguments
minMinimum value for the axis.
maxMaximum value for the axis.
majorNumeric value for major unit interval.
minorNumeric value for minor unit interval.
major_timeTime unit for major steps ("days", "months", "years"). Used for date axes.
minor_timeTime unit for minor steps ("days", "months", "years"). Used for date axes.
base_timeBase time unit for date axes ("days", "months", "years").
major_tick, minor_tickTick marks for major and minor ("cross", "in", "none", "out").
formatA number format string (e.g., "#,##0" or "yyyy-mm-dd").
log_baseBase for logarithmic scaling (e.g., 10).
color, font_colorHex color for the axis lines and label (or independent label color).
font_nameFont typeface name (e.g., "Arial", "Calibri").
font_sizeFont size for the axis labels.
boldLogical; if
TRUE, axis labels will be bold.italicLogical; if
TRUE, axis labels will be italicized.rotationRotation in degrees.
grid_color, minor_grid_colorHex color for the grid lines.
grid_lines, minor_grid_linesLogical. Show or hide grid lines.
cross_betweenSpecifies how the value axis crosses the category axis ('between' or 'midCat').
line_width, grid_width, minor_grid_widthNumeric. Change the width of the axis and grid lines.
crossesIntersection: "autoZero" (default), "min" (start), or "max" (end).
crosses_atNumeric axis value for intersection. Overrides 'crosses'.
label_posLabel position: "nextTo" (default), "low" (edge of chart), "high" (opposite edge), or "none".
Method set_x2_axis()
Set Secondary X-axis scaling, units, and format.
Usage
Chart$set_x2_axis( min = NULL, max = NULL, major = NULL, minor = NULL, major_time = NULL, minor_time = NULL, base_time = NULL, major_tick = NULL, minor_tick = NULL, format = NULL, log_base = NULL, color = NULL, font_name = NULL, font_size = NULL, bold = NULL, italic = NULL, font_color = NULL, rotation = NULL, grid_color = NULL, grid_lines = NULL, minor_grid_color = NULL, minor_grid_lines = NULL, cross_between = NULL, line_width = NULL, grid_width = NULL, minor_grid_width = NULL, crosses = "max", crosses_at = NULL, label_pos = NULL )
Arguments
minMinimum value for the axis.
maxMaximum value for the axis.
majorNumeric value for major unit interval.
minorNumeric value for minor unit interval.
major_timeTime unit for major steps ("days", "months", "years"). Used for date axes.
minor_timeTime unit for minor steps ("days", "months", "years"). Used for date axes.
base_timeBase time unit for date axes ("days", "months", "years").
major_tick, minor_tickTick marks for major and minor ("cross", "in", "none", "out").
formatA number format string (e.g., "#,##0" or "yyyy-mm-dd").
log_baseBase for logarithmic scaling (e.g., 10).
color, font_colorHex color for the axis lines and label (or independent label color).
font_nameFont typeface name (e.g., "Arial", "Calibri").
font_sizeFont size for the axis labels.
boldLogical; if
TRUE, axis labels will be bold.italicLogical; if
TRUE, axis labels will be italicized.rotationRotation in degrees.
grid_color, minor_grid_colorHex color for the grid lines.
grid_lines, minor_grid_linesLogical. Show or hide grid lines.
cross_betweenSpecifies how the value axis crosses the category axis ('between' or 'midCat').
line_width, grid_width, minor_grid_widthNumeric. Change the width of the axis and grid lines.
crossesIntersection: "autoZero" (default), "min" (start), or "max" (end).
crosses_atNumeric axis value for intersection. Overrides 'crosses'.
label_posLabel position: "nextTo" (default), "low" (edge of chart), "high" (opposite edge), or "none".
Method set_data_table()
Set the data table.
Usage
Chart$set_data_table(show = TRUE)
Arguments
showLogical TRUE or FALSE.
Method set_pie_options()
Usage
Chart$set_pie_options(rotation = NULL, expansion = NULL, hole_size = NULL)
Arguments
rotationThe angle of the first slice in degrees, from 0 to 360. This rotates the chart clockwise.
expansionSets the expansion, from 0 to 400.
hole_sizeSet the hole size of (only doughnut charts), from 0 to 90.
Method set_bubble_options()
Usage
Chart$set_bubble_options(scale = 100, show_neg = FALSE)
Arguments
scaleThe scale factor for bubbles, from 0 to 300 (expressed as a percentage).
show_negLogical; if
TRUE, bubbles with negative values will be displayed on the chart.
Method set_disp_blanks()
Set missing value behavior ("gap", "span", "zero").
Usage
Chart$set_disp_blanks(val = "gap")
Arguments
valCharacter. One of "gap" (break), "span" (continue), or "zero" (drop).
Method add_series()
Add a data series to the chart with independent styling.
Usage
Chart$add_series( name = NULL, data, label = NULL, weight = NULL, color = "4472C4", type = NULL, secondary = FALSE, dir = "col", grouping = "standard", overlap = NULL, gap_width = NULL, smooth = FALSE, show_line = TRUE, marker = "none", marker_size = 5, marker_fill = NULL, marker_line = NULL, marker_line_width = 0.75, show_val = NULL, show_cat = NULL, line_type = NULL, line_width = 1, line_color = NULL, filled = FALSE, error_bars = FALSE, trendline = FALSE )
Arguments
nameCell range or string for series name.
dataCell range for series values.
labelCell range for category labels.
weightCell range for bubble sizes (bubbleChart only).
colorPrimary Hex color for the series (used as default for line and markers).
typeChart type for this specific series (for combo charts).
secondaryLogical. Set to TRUE to move series to secondary axis.
dirBar direction ("col" or "bar").
groupingChart grouping ("standard", "stacked", "percentStacked").
overlapInteger between -100 and 100 for bar charts.
gap_widthInteger between 0 and 500 for bar charts.
smoothLogical. Enable line smoothing for line/scatter charts.
show_lineLogical. Show the line connecting points.
markerMarker type ("none", "circle", "square", "diamond", "triangle").
marker_sizeInteger size of marker.
marker_fillHex color for the interior of the marker. Defaults to
color.marker_lineHex color for the marker border. Defaults to
color.marker_line_widthNumeric width of the marker border.
show_valLogical. Override global label settings for this series (show value).
show_catLogical. Override global label settings for this series (show category).
line_typeLine style: "dashed", "dotted", "dashDot", or "solid".
line_widthNumeric width of the connecting line.
line_colorHex color for the connecting line. Defaults to
color.filledLogical; for radar charts, fills the interior area. Default FALSE.
error_barsA list of error bar properties:
-
type: The error value type (ST_ErrValType). Must be one of:"fixedVal"(Fixed Value),"percentage"(Percentage),"stdDev"(Standard Deviation),"stdErr"(Standard Error), or"cust"(Custom). -
value: The numeric value for the error bars (e.g., 10 for 10% or 5 for fixed units). -
direction: Direction of bars. One of"both","plus", or"minus". -
color: Hex color code for the bars (e.g., "FF0000").
-
trendlineA list of regression line properties:
-
type: The regression type (ST_TrendlineType). Must be one of:"linear"(Linear),"exp"(Exponential),"log"(Logarithmic),"movingAvg"(Moving Average),"poly"(Polynomial), or"power"(Power). -
order: Required for"poly"; an integer between 2 and 6. -
period: Required for"movingAvg"; an integer representing the window size. -
color: Hex color code for the line. -
show_r2: Logical; ifTRUE, displays the R-squared value on the chart.
-
Method render()
Generate the final XML string for the chart.
Usage
Chart$render(
u_ids = c("53178645", "60812428", "64752656", "81893617", "90007639")
)Arguments
u_idsfive unique ids
Returns
A character string containing the OOXML chart definition.
Method clone()
The objects of this class are cloneable with this method.
Usage
Chart$clone(deep = FALSE)
Arguments
deepWhether to make a deep clone.
Super class
encharter::EncharterBase -> ChartEx
Public fields
color_xmlcolor
style_xmlstyle
Methods
Public methods
Inherited methods
encharter::EncharterBase$print()encharter::EncharterBase$set_chart_style()encharter::EncharterBase$set_chart_title()encharter::EncharterBase$set_data_label_style()encharter::EncharterBase$set_legend_style()encharter::EncharterBase$set_plot_style()encharter::EncharterBase$set_x_axis()encharter::EncharterBase$set_x_title()encharter::EncharterBase$set_y_axis()encharter::EncharterBase$set_y_title()
Method new()
Create a new ChartEx object.
Usage
ChartEx$new(type = NULL)
Arguments
typeInitial chart type (e.g., "waterfall", "treemap").
Returns
A new ChartEx object.
Method add_series()
Add a data series to the chart.
Usage
ChartEx$add_series( name = NULL, data, label = NULL, type = NULL, color = "auto", line_color = NULL, line_width = 1, gap_width = NULL, subtotals = NULL, statistics = NULL, binning = NULL, visibility = NULL, parent_label = "overlapping" )
Arguments
nameCell range for the series name.
dataCell range for the numeric values.
labelCell range for the category labels.
typeType of chart (waterfall, sunburst, treemap, regionMap).
colorHex color or "auto".
line_colorBorder color.
line_widthBorder width.
gap_widthInteger between 0 and 500.
subtotalsNumeric vector of indices to treat as subtotals (Waterfall only).
statisticsQuartile method: "inclusive" or "exclusive".
binningA list for Histogram/BoxWhisker:
binSize(numeric),binCount(integer),intervalClosed("left", "right"),underflow(numeric or "auto"),overflow(numeric or "auto").visibilityA named list of logicals for BoxWhisker/Waterfall:
connectorLines,meanLine,meanMarker,nonoutliers,outliers.parent_labelTreemap label style: "overlapping", "banner", or "none".
Method render()
Render the internal XML for writing to a file.
Usage
ChartEx$render(id_start = 1, guid = "{C59B1284-E301-0D0F-1B20-FD96A66D6E43}")Arguments
id_startNumeric starting ID for XML data references.
guida guid
Returns
A list containing the XML and attribute mappings.
Method clone()
The objects of this class are cloneable with this method.
Usage
ChartEx$clone(deep = FALSE)
Arguments
deepWhether to make a deep clone.
Examples
# Standard line chart
ec("lineChart")
# Extended waterfall chart
ec("waterfall")
# R-style alias
ec("barplot")
## ------------------------------------------------
## Method `Chart$set_x2_title`
## ------------------------------------------------
ec("scatter")$
add_series(data = "Sheet1!A1:A10", secondary = "x")$
set_x2_title("Secondary X", font_color = "888888")
## ------------------------------------------------
## Method `Chart$set_y2_title`
## ------------------------------------------------
ec("line")$
add_series(data = "Sheet1!A1:A10")$
add_series(data = "Sheet1!B1:B10", secondary = TRUE)$
set_y2_title("Growth Rate (%)")
Add a child node to an XML target
Description
Add a child node to an XML target
Usage
xml_add_child(.x, .name, ..., .where = -1, .value = NULL)
Arguments
.x |
A pugi_node, pugi_xml, or a list containing one. |
.name |
The name of the new tag to create. |
... |
Named arguments for attributes, unnamed for text content. |
.where |
Integer; 0 to prepend, -1 to append. |
.value |
Optional character string to set as text content. |
Value
The newly created pugi_node.
Get attribute value
Description
Get attribute value
Usage
xml_attr(x, attr)
Arguments
x |
A pugi_node or list of nodes. |
attr |
Character string of the attribute name. |
Value
A character vector of attribute values.
Get element children
Description
Get element children
Usage
xml_children(x)
Arguments
x |
A pugi_node or list of nodes. |
Value
A pugi_nodeset of child elements.
Find all matches via XPath
Description
Find all matches via XPath
Usage
xml_find_all(x, xpath)
Arguments
x |
A pugi_node or list of nodes. |
xpath |
Character string containing XPath expression. |
Value
A pugi_nodeset (list of pugi_nodes).
Find first match via XPath
Description
Find first match via XPath
Usage
xml_find_first(x, xpath)
Arguments
x |
A pugi_node or list of nodes. |
xpath |
Character string containing XPath expression. |
Value
A pugi_node or list of nodes.
Check for attribute existence
Description
Check for attribute existence
Usage
xml_has_attr(x, attr)
Arguments
x |
A pugi_node or list of nodes. |
attr |
Character string of the attribute name. |
Value
A logical vector.
Get count of child elements
Description
Get count of child elements
Usage
xml_length(x)
Arguments
x |
A pugi_node or list of nodes. |
Value
An integer vector of child counts.
Get node names
Description
Get node names
Usage
xml_name(x)
Arguments
x |
A pugi_node or list of nodes. |
Value
A character vector of tag names.
Remove nodes from the tree
Description
Remove nodes from the tree
Usage
xml_remove(x)
Arguments
x |
A pugi_node or list of nodes. |
Set attribute value
Description
Set attribute value
Usage
xml_set_attr(x, attr, value)
Arguments
x |
A pugi_node or list of nodes. |
attr |
Character string of the attribute name. |
value |
The value to set (coerced to character). |
Get node types
Description
Get node types
Usage
xml_type(x)
Arguments
x |
A pugi_node or list of nodes. |
Value
A character vector (e.g., "element", "document").