Вопрос

I want to display a straight line graph using AMChart. But it does not draw line between points if their y values are equal. How can I solve this problem.

<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    <title>amCharts examples</title>
    <link rel="stylesheet" href="style.css" type="text/css">
    <script src="../amcharts/amcharts.js" type="text/javascript"></script>          
    <script type="text/javascript">
        var chart;
        var graph;

        // months in JS are zero-based, 0 means January 
        var chartData = [{
            year: new Date(1950, 0),
            value: 300
        }, {
            year: new Date(1951, 0),
            value: 300
        }, {
            year: new Date(1952, 0),
            value: 300
        }, {
            year: new Date(1953, 0),
            value: 300
        }];


        AmCharts.ready(function () {
            // SERIAL CHART
            chart = new AmCharts.AmSerialChart();
            chart.pathToImages = "../amcharts/images/";
            chart.dataProvider = chartData;
            chart.marginLeft = 10;
            chart.categoryField = "year";
            chart.zoomOutButton = {
                backgroundColor: '#000000',
                backgroundAlpha: 0.15
            };

            // listen for "dataUpdated" event (fired when chart is inited) and call zoomChart method when it happens
            chart.addListener("dataUpdated", zoomChart);

            // AXES
            // category
            var categoryAxis = chart.categoryAxis;
            categoryAxis.parseDates = true; // as our data is date-based, we set parseDates to true
            categoryAxis.minPeriod = "YYYY"; // our data is yearly, so we set minPeriod to YYYY
            categoryAxis.gridAlpha = 0;

            // value
            var valueAxis = new AmCharts.ValueAxis();
            valueAxis.axisAlpha = 0;
            valueAxis.inside = true;
            chart.addValueAxis(valueAxis);

            // GRAPH                
            graph = new AmCharts.AmGraph();
            graph.type = "smoothedLine"; // this line makes the graph smoothed line.
            graph.lineColor = "#d1655d";
            graph.negativeLineColor = "#637bb6"; // this line makes the graph to change color when it drops below 0
            graph.bullet = "round";
            graph.bulletSize = 5;
            graph.lineThickness = 2;
            graph.valueField = "value";
            chart.addGraph(graph);

            // CURSOR
            var chartCursor = new AmCharts.ChartCursor();
            chartCursor.cursorAlpha = 0;
            chartCursor.cursorPosition = "mouse";
            chartCursor.categoryBalloonDateFormat = "YYYY";
            chart.addChartCursor(chartCursor);

            // SCROLLBAR
            var chartScrollbar = new AmCharts.ChartScrollbar();
            chartScrollbar.graph = graph;
            chartScrollbar.backgroundColor = "#DDDDDD";
            chartScrollbar.scrollbarHeight = 30;
            chartScrollbar.selectedBackgroundColor = "#FFFFFF";
            chart.addChartScrollbar(chartScrollbar);

            // WRITE
            chart.write("chartdiv");
        });

        // this method is called when chart is first inited as we listen for "dataUpdated" event
        function zoomChart() {
            // different zoom methods can be used - zoomToIndexes, zoomToDates, zoomToCategoryValues
            chart.zoomToDates(new Date(1949, 0), new Date(1955, 0));
        }
    </script>
</head>

<body>
    <div id="chartdiv" style="width:100%; height:400px;"></div>
</body>

Это было полезно?

Решение

Are you by any luck using google chrome ? If yes, I had the same problem, and it seems to be a bug in Google chrome itself, which prevents drawing colinear polylines, such as you described in your question...

Here is a link to the bug report, which you can probably star to follow... http://code.google.com/p/chromium/issues/detail?id=60306

Другие советы

I am not sure about this. But same thing happened to me. I used amcharts 2.10.8 and browser was IE 9,FF 21. Even though vertical axis's values were constants (ie 271) the graph was shown as curve instead of straight line. So I changed the graph.type to line instead of smoothedLine. That helped me to overcome the problem.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top