The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

Apache::Wyrd::Chart - Embed Dynamically-redrawn charts in HTML

SYNOPSIS

  <BASENAME::Chart img="chart.png" type="bars" height="200" width="300">
    <BASENAME::Query>
      select month, price
      from monthly_prices
      order by month
    </BASENAME::Query>
  </BASENAME::Chart>

DESCRIPTION

Chart-graphic Wyrd wrapping the GD::Graph Module. Creates a graphic file (PNG) and a meta-data file based on data handed it to by an Apache::Wyrd::Query Wyrd.

HTML ATTRIBUTES

The Chart Wyrd accepts nearly all the attributes of the GD::Graph module and the <img> tag, producing an <img> tag which points to the graphic file produced by GD::Graph, having most attributes (such as onClick, border, but not src) given to the Chart Wyrd.

Wyrd attributes:
data_col

Which column of the query to plot. Default: 2.

labels

A comma or whitespace-separated list of label names. If not enough labels are given, the remainder will be labeled "unknown"

label_col

Which column of the query to use for labels. Default: 1.

other_limit

Items with values under this number will be lumped together under the item name "Other".

label_filters, value_filters

A whitespace or comma delineated list of builtin filters to apply to the labels or values respectively. Current filters:

zero

Replace undefined values with 0.

dollar_sign

Put a dollar sign to the left

percent_sign

Put a percent sign to the right

commify

Put numbers into (north american style) comma splits, i.e. 3,000,000 for 3E6

Flags
nochache

Always generate the graphic, instead of checking to see if it has changed

percent

Convert values to percentages of total

rotate

Pivot the table returned by the query to make X Y and vice-versa

value_labels

Add the value to the label, as in "Foobars (2), Widgets (23)"

IMG-style attributes:
height, width, vspace, border, hspace

In pixels, as per IMG tag

src

Required - Where (document-root-relative) the graphic is to appear. Currently must end with .png.

GD::Graph-style attributes

See GD::Graph documentation for more details. Files are always document-root-relative. Colors may be in GD::Graph name format or in in HTML "#XXXXXX" format. Edge-positions are in the GD::Graph standard of UL for Upper-Left, LL for Lower-Left, etc. 1 is the usual value for "yes" in boolean attributes. Lists are in a whitespace-separated or comma-separated list of items (using Apache::Wyrd::Services::SAK::token_parse). Angles are in degrees.

type

What type of graph, per the GD::Graph subclasses. Valid types are: lines, hbars, bars, points, linespoints, area, or pie

b_margin t_margin l_margin r_margin

edge-to-graphic margins

transparent interlaced

PNG options

bgclr fgclr boxclr textclr labelclr axislabelclr legendclr valuesclr accentclr shadowclr

Colors for the respective chart elements

dclrs borderclrs

Data element and border colors, in list format.

show_values values_vertical values_space values_format

Whether (1=yes) to show values, whether vertically, what space (pixels) around them and what (sprintf-style) format to display them in.

logo logo_position logo_resize

logo file, corner for logo, and resize factor

legend_placement legend_spacing legend_marker_width legend_marker_height lg_cols

Legend attributes (axestype graphs only)

x_label y_label box_axis two_axes zero_axis zero_axis_only x_plot_values y_plot_values y_max_value y_min_value x_tick_number x_min_value x_tick_number x_min_value x_max_value y_number_format x_label_skip y_label_skip x_tick_offset x_all_ticks x_label_position y_label_position x_labels_vertical long_ticks tick_length x_ticks y_tick_number axis_space text_space

Axis attributes (for applicable chart types)

overwrite bar_width bar_spacing shadow_depth borderclrs cycle_clrs cumulate

Bar-chart attributes, foo_clrs are lists. Cumulate is boolean, and means to stack values within a bar

line_types line_type_scale line_width skip_undef

Line-chart attributes. Line types are 1: solid, 2: dashed, 3: dotted, 4: dot-dashed. skip_undef leaves a gap for an undefined point

markers marker_size

Marker types (1: filled square, 2: open square, 3: horizontal cross, 4: diagonal cross, 5: filled diamond, 6: open diamond, 7: filled circle, 8: open circle, 9: horizontal line, 10: vertical line) and size (in pixels)

3d pie_height start_angle suppress_angle

Pie chart attributes. suppress_angle is a limit below which no line is drawn

legend_font title_font x_label_font y_label_font x_axis_font y_axis_font

Fonts. Either a file (if your system supports TTF) or one of the builtin fonts: gdTinyFont gdSmallFont gdMediumBoldFont gdLargeFont gdGiantFont

PERL METHODS

(format: (returns) name (arguments after self))

(void) _alter_graphic (GD Object)

"Hook" method for putting final changes on the plotted GD graphic. Accepts the graphic as a GD object. Does nothing by default.

(undef) _process_chart (GD::Graph Object)

"Hook" method for putting final changes on the GD::Graph object. Accepts the chart as a GD::Graph object. Does nothing by default.

(void) _set_default_attribs (void)

"Hook" method for setting default attributes. Does nothing by default.

(scalar) _special_filter (scalar, scalar)

"Hook" for filtering data/labels. Should accept a value for the filter and the data to perform filters upon.

BUGS/CAVEATS/RESERVED METHODS

Reserves the register_filter, _setup and _format_output methods. Also reserves the methods _set_default_attributes, _get_data, _process_data, _filter_labels, _filter_values, _filter. Also reserves the standard register_query method.

Produces, by default, a second file (<graphic_name>.tdf) in the same directory as the graphic which has the HTML fingerprint and the data stored in tab-delineated-text format.

AUTHOR

Barry King <wyrd@nospam.wyrdwright.com>

SEE ALSO

Apache::Wyrd

General-purpose HTML-embeddable perl object

LICENSE

Copyright 2002-2007 Wyrdwright, Inc. and licensed under the GNU GPL.

See LICENSE under the documentation for Apache::Wyrd.

2 POD Errors

The following errors were encountered while parsing the POD:

Around line 224:

You forgot a '=back' before '=head2'

Around line 407:

'=item' outside of any '=over'