%% @author Marc Worrell %% @copyright 2009 Marc Worrell %% @doc Simple interface to the pie type of Google chart. Allows for simpler data entry. %% Parameters: data=[{label,value}, ...] colors=some_color %% and then all parameters %% @end %% Copyright 2009 Marc Worrell %% %% Licensed under the Apache License, Version 2.0 (the "License"); %% you may not use this file except in compliance with the License. %% You may obtain a copy of the License at %% %% http://www.apache.org/licenses/LICENSE-2.0 %% %% Unless required by applicable law or agreed to in writing, software %% distributed under the License is distributed on an "AS IS" BASIS, %% WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. %% See the License for the specific language governing permissions and %% limitations under the License. -module(scomp_base_chart_pie). -moduledoc(" Show a pie chart. This is an utility tag providing a simplified interface to the pie chart feature of the [\\{% google_chart %\\}](/id/doc_template_scomp_scomp_google_chart#scomp-google-chart) tag. It has an easier way to define the data. Example of simple pie chart: ```django {% chart_pie data=[[\"firefox\",23], [\"internet explorer\", 67], [\"safari\",4], [\"chrome\",3], [\"other\", 3]] %} ``` This generates the following image tag: ```django google chart ``` Or, as an image: The tag chart_pie accepts the following arguments: | Argument | Description | Example | | -------- | -------------------------------------------------------------------------------- | --------------------------------------- | | data | The data for the pie chart. A list of pairs of \\\\{label, value\\\\} or \\\\[label, value\\\\]. | \\\\[\\\\{“nl”,300\\\\},\\\\{uk,”200”\\\\}\\\\] | | colors | The colors for the pies. A list of colors, when there are more data points than colors then the colors are interpolated. Colors are specified in hexadecimal. Defaults to Google default colors. | colors=\\\\[“ffcc00”,”ccff00”,”00ffcc”\\\\] | | threed | Set to true to have a 3D effect on the pie chart. Defaults to false. | threed=true | | width | The width of the generated pie chart, in pixels. Defaults to 300. | width=450 | | height | The height of the generated pie chart, in pixels. Defaults to 150. | height=200 | Other arguments can be found at the [google_chart](/id/doc_template_scomp_scomp_google_chart#scomp-google-chart) tag. See also [google_chart](/id/doc_template_scomp_scomp_google_chart#scomp-google-chart) and [chart_pie3d](/id/doc_template_scomp_scomp_chart_pie3d#scomp-chart-pie3d). "). -author("Marc Worrell default. render(_Params, _Vars, _Context) -> {ok, <<>>}. % Data = proplists:get_value(data, Params, []), % Colors = proplists:get_value(colors, Params), % ThreeD = proplists:get_value(threed, Params, false), % Params1 = proplists:delete(labels, % proplists:delete(data, % proplists:delete(colors, % proplists:delete(threed, Params)))), % {Labels,Values} = case Data of % [] -> {[],[]}; % [{_,_}|_] -> lists:unzip(Data); % [[_,_]|_] -> lists:foldr(fun([A,B],{Acc,Bcc}) -> {[A|Acc],[B|Bcc]} end, {[],[]}, Data) % end, % Axes = [ {axis, [{position,"bottom"},{labels,Labels}]} ], % Type = case z_template_compiler_runtime:to_bool(ThreeD, Context) of % true -> "pie3d"; % false -> "pie" % end, % Data2 = case is_list(Colors) of % true -> [{data, [{values, Values}, {color, Colors}]}]; % false -> [{data, [{values, Values}]}] % end, % Params2 = [{axis,Axes}, {type,Type}, {data,Data2} | Params1], % scomp_base_google_chart:render(Params2, Vars, Context).