Add a "crect" (centered rectangle) layer to a Bokeh figure
ly_crect( fig, x, y = NULL, data = figure_data(fig), width = 1, height = 1, angle = 0, dilate = FALSE, color = NULL, alpha = 1, hover = NULL, url = NULL, legend = NULL, lname = NULL, lgroup = NULL, ... )
fig | figure to modify |
---|---|
x | values or field name of center x coordinates |
y | values or field name of center y coordinates |
data | an optional data frame, providing the source for inputs xleft, ybottom, xright, ytop, and other glyph properties |
width | values or field name of widths |
height | values or field name of heights |
angle | values or field name of rotation angles |
dilate | logical - whether to dilate pixel distance computations when drawing |
color | color for the glyph - a hex code (with no alpha) or any of the 147 named CSS colors, e.g 'green', 'indigo' - for glyphs with both fill and line properties, see "Handling color" below |
alpha | the alpha transparency of the glyph between 0 (transparent) and 1 (opaque) - if glyph has both fill and color properties, see "Handling alpha" below |
hover | a data frame of variables to be displayed when hovering over the glyph or a vector of variable names that can be found and extracted from the |
url | a string of URLs or a single string that references a variable name (via @var_name) that can be found and extracted from the |
legend | either a logical specifying not to plot a legend for this layer (FALSE) or a string indicating the name of the legend entry for this layer (note that when mapping plot attributes to variables in |
lname | layer name |
lgroup | layer group |
... | additional parameters for fine control over fill and line properties (see "Additional parameters" below) |
The color
parameter is a high-level plot attribute that provides default behavior for coloring glyphs.
When using a glyph that only has line properties, this will be the color of the line.
When using a glyph that has has line and fill properties, this will be the color of the line and the fill, with the alpha level of the fill reduced by 50%.
If full control over fill and line color is desired, the fill_color
and line_color
attributes can be specified explicitly and will override color
.
When color is NULL
and fill_color
or line_color
are not specified, the color will be chosen from the theme.
The alpha
is a high-level plot attribute that sets the transparency of the glyph being plotted.
When using a glyph that only has line properties, this will be the alpha of the line.
When using a glyph that has has line and fill properties, this will be the alpha of the line and the alpha of the fill will be set to 50% of this value.
Individual fill and line alpha can be specified with fill_alpha
and line_alpha
and will override alpha
.
When specifying an input data frame for a layer through the data
argument, columns of data
can be used to specify various plot attributes such as color
, etc. For example, with ly_points(..., data = iris, color = Species)
, the Species
variable is used to determine how to color the points. Here, Species
is "mapped" to the color
attribute. Both continuous and categorical variables can be mapped. In the case of continuous variables, the range is cut into slices and attributes are applied to each interval. The mapping from the values of the variable to the actual plot attributes is determined based on the theme.
fill_color | color to use to fill the glyph with - a hex code (with no alpha) or any of the 147 named CSS colors, e.g 'green', 'indigo' |
fill_alpha | transparency value between 0 (transparent) and 1 (opaque) |
line_color | color to use to stroke lines with - a hex code (with no alpha) or any of the 147 named CSS colors, e.g 'green', 'indigo' |
line_width | stroke width in units of pixels |
line_alpha | transparency value between 0 (transparent) and 1 (opaque) |
line_join | how path segments should be joined together 'miter' 'round' 'bevel' |
line_cap | how path segments should be terminated 'butt' 'round' 'square' |
line_dash | array of integer pixel distances that describe the on-off pattern of dashing to use |
line_dash_offset | the distance in pixels into the line_dash that the pattern should start from |
Other layer functions:
ly_abline()
,
ly_annular_wedge()
,
ly_annulus()
,
ly_arc()
,
ly_bar()
,
ly_bezier()
,
ly_boxplot()
,
ly_contour()
,
ly_curve()
,
ly_density()
,
ly_hist()
,
ly_image_url()
,
ly_image()
,
ly_lines()
,
ly_map()
,
ly_multi_line()
,
ly_oval()
,
ly_patch()
,
ly_points()
,
ly_polygons()
,
ly_quadratic()
,
ly_quantile()
,
ly_ray()
,
ly_rect()
,
ly_segments()
,
ly_text()
,
ly_wedge()
# \donttest{ # prepare data elements <- subset(elements, !is.na(group)) elements$group <- as.character(elements$group) elements$period <- as.character(elements$period) # add colors for groups metals <- c("alkali metal", "alkaline earth metal", "halogen", "metal", "metalloid", "noble gas", "nonmetal", "transition metal") colors <- c("#a6cee3", "#1f78b4", "#fdbf6f", "#b2df8a", "#33a02c", "#bbbb88", "#baa2a6", "#e08e79") elements$color <- colors[match(elements$metal, metals)] elements$type <- elements$metal # make coordinates for labels elements$symx <- paste(elements$group, ":0.1", sep = "") elements$numbery <- paste(elements$period, ":0.8", sep = "") elements$massy <- paste(elements$period, ":0.15", sep = "") elements$namey <- paste(elements$period, ":0.3", sep = "") # create figure p <- figure(title = "Periodic Table", tools = "", ylim = as.character(c(7:1)), xlim = as.character(1:18), xgrid = FALSE, ygrid = FALSE, xlab = "", ylab = "", height = 600, width = 1200) %>% # plot rectangles ly_crect(group, period, data = elements, 0.9, 0.9, fill_color = color, line_color = color, fill_alpha = 0.6, hover = list(name, atomic.number, type, atomic.mass, electronic.configuration)) %>% # add symbol text ly_text(symx, period, text = symbol, data = elements, font_style = "bold", font_size = "15pt", align = "left", baseline = "middle") %>% # add atomic number text ly_text(symx, numbery, text = atomic.number, data = elements, font_size = "9pt", align = "left", baseline = "middle") %>% # add name text ly_text(symx, namey, text = name, data = elements, font_size = "6pt", align = "left", baseline = "middle") %>% # add atomic mass text ly_text(symx, massy, text = atomic.mass, data = elements, font_size = "6pt", align = "left", baseline = "middle") p # }