src/cm/media/js/lib/yui/yui_3.10.3/docs/charts/charts-seriesupdate.html
author Yves-Marie Haussonne <ymh.work+github@gmail.com>
Fri, 09 May 2014 18:35:26 +0200
changeset 656 a84519031134
parent 525 89ef5ed3c48b
permissions -rw-r--r--
add link to "privacy policy" in the header test

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="utf-8">
    <title>Example: Update Chart Series</title>
    <link rel="stylesheet" href="http://fonts.googleapis.com/css?family=PT+Sans:400,700,400italic,700italic">
    <link rel="stylesheet" href="../../build/cssgrids/cssgrids-min.css">
    <link rel="stylesheet" href="../assets/css/main.css">
    <link rel="stylesheet" href="../assets/vendor/prettify/prettify-min.css">
    <link rel="shortcut icon" type="image/png" href="../assets/favicon.png">
    <script src="../../build/yui/yui-min.js"></script>
    
</head>
<body>
<!--
<a href="https://github.com/yui/yui3"><img style="position: absolute; top: 0; right: 0; border: 0;" src="https://s3.amazonaws.com/github/ribbons/forkme_right_darkblue_121621.png" alt="Fork me on GitHub"></a>
-->
<div id="doc">
    <div id="hd">
        <h1><img src="http://yuilibrary.com/img/yui-logo.png"></h1>
    </div>
    

            <h1>Example: Update Chart Series</h1>
    <div class="yui3-g">
        <div class="yui3-u-3-4">
            <div id="main">
                <div class="content"><style scoped>
#custom-doc { width: 95%; min-width: 950px; }
#pagetitle {background-image: url(../../assets/bg_hd.gif);}
#mychart {
    margin:10px 10px 10px 10px;
    width:90%;
    max-width: 800px;
    height:400px;
}
.fields label {
    font-weight:bold;
    display:block;
    float:left;
    width:8em;
}

.fields {
    border-top:1px solid #aaa;
    padding:10px;
}
</style>
<div class="intro">
<p>This example shows how to access a <code>Chart</code> instance's <code>seriesCollection</code> after the <code>Chart</code> has rendered.</p>
</div>
<div class="example">
<div id="mychart"></div>
<form id="changeValue" class="fields" action="#">
    <div class="body">
    <p>
        <label for="seriesSelector">series:</label>
        <select name="seriesSelector" id="seriesSelector">
            <option value="expenses">expenses</option>
            <option value="revenue">revenue</option>
        </select>
    </p>
    <p>
        <label for="fillColor">fill color:</label>
        <input type="text" name="fillColor" id="fillColor" />
    </p>
    <p>
        <label for="borderColor">border color:</label>
        <input type="text" name="borderColor" id="borderColor" />
    </p>
    <p>
        <label for="borderWeight">border weight:</label>
        <input type="text" name="borderColor" id="borderWeight" />
    </p>
    </div>
    <div class="footer">
    <p>
        <button type="button" class="action" id="updateSeries">Update Series</button>
    </p>
    </div>
</form>
<script type="text/javascript">
(function() {
    YUI().use('escape', 'charts', function (Y) 
    { 
        var myDataValues = [ 
            {category:"Q1", expenses:137000, revenue:532200}, 
            {category:"Q2", expenses:211000, revenue:689100}, 
            {category:"Q3", expenses:151000, revenue:521500}, 
            {category:"Q4", expenses:163000, revenue:892650}
        ];
        
        var mychart = new Y.Chart({type:"bar", dataProvider:myDataValues, render:"#mychart"});
        
        //Click handler
        Y.on("click", function(e) {
            var seriesName = Y.one("#seriesSelector").get("value"),
                fillColor = Y.Escape.html(Y.one("#fillColor").get("value")),
                borderColor = Y.Escape.html(Y.one("#borderColor").get("value")),
                borderWeight = parseFloat(Y.one("#borderWeight").get("value")),
                series,
                marker = {fill:{}, border:{}};
            if(seriesName)
            {
                series = mychart.getSeries(seriesName);
                if(fillColor)
                {
                    marker.fill.color = fillColor;
                }
                if(borderColor)
                {
                    marker.border.color = borderColor;
                }
                if(!isNaN(borderWeight))
                {
                    marker.border.weight = borderWeight;
                }
                series.set("styles", {marker:marker});
            }
       }, "#updateSeries");
    });
})();
</script>

</div>
<h3>Update Series of a <code>Chart</code> Instance After It has Rendered.</h3>


<p>You can update a series after the <code>Chart</code> has rendered through the <code>getSeries</code> method. This method returns a reference to a series instance based on either the
instance's <code>seriesCollection</code> index or the key value associated with the value data of the series. This example uses the value key of each series to update the fill color, 
border color and border weight of its markers.</p>

<h4>CSS</h4>
<pre class="code prettyprint">#mychart {
    margin:10px 10px 10px 10px;
    width:90%;
    max-width: 800px;
    height:400px;
}</pre>


<h4>HTML</h4>
<pre class="code prettyprint">&lt;div id=&quot;mychart&quot;&gt;&lt;&#x2F;div&gt;</pre>


<h4>JavaScript</h4>
<pre class="code prettyprint">YUI().use(&#x27;charts&#x27;, function (Y) 
{ 
    var myDataValues = [ 
        {category:&quot;Q1&quot;, expenses:137000, revenue:532200}, 
        {category:&quot;Q2&quot;, expenses:211000, revenue:689100}, 
        {category:&quot;Q3&quot;, expenses:151000, revenue:521500}, 
        {category:&quot;Q4&quot;, expenses:163000, revenue:892650}
    ];
    
    var mychart = new Y.Chart({type:&quot;bar&quot;, dataProvider:myDataValues, render:&quot;#mychart&quot;});
    
    &#x2F;&#x2F;Click handler
    Y.on(&quot;click&quot;, function(e) {
        var seriesName = Y.one(&quot;#seriesSelector&quot;).get(&quot;value&quot;),
            fillColor = Y.Escape.html(Y.one(&quot;#fillColor&quot;).get(&quot;value&quot;)),
            borderColor = Y.Escape.html(Y.one(&quot;#borderColor&quot;).get(&quot;value&quot;)),
            borderWeight = parseFloat(Y.one(&quot;#borderWeight&quot;).get(&quot;value&quot;)),
            series,
            marker = {fill:{}, border:{}};
        if(seriesName)
        {
            series = mychart.getSeries(seriesName);
            if(fillColor)
            {
                marker.fill.color = fillColor;
            }
            if(borderColor)
            {
                marker.border.color = borderColor;
            }
            if(!isNaN(borderWeight))
            {
                marker.border.weight = borderWeight;
            }
            series.set(&quot;styles&quot;, {marker:marker});
        }
   }, &quot;#updateSeries&quot;);
});</pre>

</div>
            </div>
        </div>

        <div class="yui3-u-1-4">
            <div class="sidebar">
                

                
                    <div class="sidebox">
                        <div class="hd">
                            <h2 class="no-toc">Examples</h2>
                        </div>

                        <div class="bd">
                            <ul class="examples">
                                
                                    
                                        <li data-description="Shows how to use Charts to create a basic chart.">
                                            <a href="charts-simple.html">Basic Charts Implementation</a>
                                        </li>
                                    
                                
                                    
                                        <li data-description="Shows how to create a chart with multiple series.">
                                            <a href="charts-multiseries.html">Chart with Multiple Series</a>
                                        </li>
                                    
                                
                                    
                                        <li data-description="Shows how to create a column chart with multiple series.">
                                            <a href="charts-column.html">Specify Chart Type</a>
                                        </li>
                                    
                                
                                    
                                        <li data-description="Shows how to create a column chart with a stacked numeric axis.">
                                            <a href="charts-stackedcolumn.html">Create Stacked Chart</a>
                                        </li>
                                    
                                
                                    
                                        <li data-description="Shows how to create a chart with a time axis.">
                                            <a href="charts-timeaxis.html">Create a Chart with a Time Axis</a>
                                        </li>
                                    
                                
                                    
                                        <li data-description="Shows how to add gridlines to a chart.">
                                            <a href="charts-gridlines.html">Add Gridlines to a Chart</a>
                                        </li>
                                    
                                
                                    
                                        <li data-description="Shows how to create a chart with planar based events.">
                                            <a href="charts-stackedarea.html">Create a Stacked Area Chart with Planar Based Events</a>
                                        </li>
                                    
                                
                                    
                                        <li data-description="Shows how to use a chart&#x27;s styles attribute to customize a chart.">
                                            <a href="charts-globalstyles.html">Customize a Chart</a>
                                        </li>
                                    
                                
                                    
                                        <li data-description="Shows how to customize the default tooltip of a chart.">
                                            <a href="charts-customizedtooltip.html">Customize a Chart&#x27;s Tooltip</a>
                                        </li>
                                    
                                
                                    
                                        <li data-description="Shows how to explicitly define the axes and series for a chart.">
                                            <a href="charts-objectstyles.html">Define a Chart&#x27;s Axes and Series</a>
                                        </li>
                                    
                                
                                    
                                        <li data-description="Shows how to use charts to create a pie chart.">
                                            <a href="charts-pie.html">Pie Chart</a>
                                        </li>
                                    
                                
                                    
                                        <li data-description="Shows how to create a chart with multiple value axes.">
                                            <a href="charts-dualaxes.html">Dual Axes Chart</a>
                                        </li>
                                    
                                
                                    
                                        <li data-description="Shows how to access a chart instance&#x27;s value axis after the chart has rendered.">
                                            <a href="charts-axisupdate.html">Update Chart Axis</a>
                                        </li>
                                    
                                
                                    
                                        <li data-description="Shows how to access a chart instance&#x27;s seriesCollection after the chart has rendered.">
                                            <a href="charts-seriesupdate.html">Update Chart Series</a>
                                        </li>
                                    
                                
                                    
                                        <li data-description="Shows how to add a legend to a chart.">
                                            <a href="charts-legend.html">Create Chart with a Legend</a>
                                        </li>
                                    
                                
                                    
                                        <li data-description="Shows how to render multiple data points in a singe marker.">
                                            <a href="charts-groupmarkers.html">Group Marker Chart</a>
                                        </li>
                                    
                                
                            </ul>
                        </div>
                    </div>
                

                
            </div>
        </div>
    </div>
</div>

<script src="../assets/vendor/prettify/prettify-min.js"></script>
<script>prettyPrint();</script>

<script>
YUI.Env.Tests = {
    examples: [],
    project: '../assets',
    assets: '../assets/charts',
    name: 'charts-seriesupdate',
    title: 'Update Chart Series',
    newWindow: '',
    auto:  false 
};
YUI.Env.Tests.examples.push('charts-simple');
YUI.Env.Tests.examples.push('charts-multiseries');
YUI.Env.Tests.examples.push('charts-column');
YUI.Env.Tests.examples.push('charts-stackedcolumn');
YUI.Env.Tests.examples.push('charts-timeaxis');
YUI.Env.Tests.examples.push('charts-gridlines');
YUI.Env.Tests.examples.push('charts-stackedarea');
YUI.Env.Tests.examples.push('charts-globalstyles');
YUI.Env.Tests.examples.push('charts-customizedtooltip');
YUI.Env.Tests.examples.push('charts-objectstyles');
YUI.Env.Tests.examples.push('charts-pie');
YUI.Env.Tests.examples.push('charts-dualaxes');
YUI.Env.Tests.examples.push('charts-axisupdate');
YUI.Env.Tests.examples.push('charts-seriesupdate');
YUI.Env.Tests.examples.push('charts-legend');
YUI.Env.Tests.examples.push('charts-groupmarkers');

</script>
<script src="../assets/yui/test-runner.js"></script>



</body>
</html>