asp.netasp.net-mvc-4chartsgraphael

graphaeljs error


I am using the graphaeljs library to display charts, at an ASP.NET MVC 4

I have copied this code from the graphaeljs website

 <script src="scripts/raphael.js"></script>
            <script src="scripts/g.raphael-min.js"></script>
            <script src="scripts/g.bar-min.js"></script>
            <script>
                window.onload = function () {
                    var r = Raphael("holder"),
                        fin = function () {
                            this.flag = r.popup(this.bar.x, this.bar.y, this.bar.value || "0").insertBefore(this);
                        },
                        fout = function () {
                            this.flag.animate({ opacity: 0 }, 300, function () { this.remove(); });
                        },
                        fin2 = function () {
                            var y = [], res = [];
                            for (var i = this.bars.length; i--;) {
                                y.push(this.bars[i].y);
                                res.push(this.bars[i].value || "0");
                            }
                            this.flag = r.popup(this.bars[0].x, Math.min.apply(Math, y), res.join(", ")).insertBefore(this);
                        },
                        fout2 = function () {
                            this.flag.animate({ opacity: 0 }, 300, function () { this.remove(); });
                        },
                        txtattr = { font: "12px sans-serif" };

                    r.text(160, 10, "Single Series Chart").attr(txtattr);
                    r.text(480, 10, "Multiline Series Stacked Chart").attr(txtattr);
                    r.text(160, 250, "Multiple Series Chart").attr(txtattr);
                    r.text(480, 250, "Multiline Series Stacked Chart\nColumn Hover").attr(txtattr);

                    r.barchart(10, 10, 300, 220, [[55, 20, 13, 32, 5, 1, 2, 10]]).hover(fin, fout);
                    r.hbarchart(330, 10, 300, 220, [[55, 20, 13, 32, 5, 1, 2, 10], [10, 2, 1, 5, 32, 13, 20, 55]], { stacked: true }).hover(fin, fout);
                    r.hbarchart(10, 250, 300, 220, [[55, 20, 13, 32, 5, 1, 2, 10], [10, 2, 1, 5, 32, 13, 20, 55]]).hover(fin, fout);
                    var c = r.barchart(330, 250, 300, 220, [[55, 20, 13, 32, 5, 1, 2, 10], [10, 2, 1, 5, 32, 13, 20, 55]], { stacked: true, type: "soft" }).hoverColumn(fin2, fout2);
                };
            </script>

But when I run at my browser, this message appears

Uncaught TypeError: Cannot read property 'x' of undefined raphael.js:11
c._engine.create raphael.js:11
c raphael.js:9
window.onload (index):92

I do not know what I do wrong, and I used the libraries exactly as they are. Can you please tell me, what might be my mistake?


Solution

  • Sorry, I don't see anything wrong with the code you posted. I made a fiddle for you.

    It is obviously an issue with the raphael.js file.

    Be sure to include class="raphael" on your body tag, and a div with id="holder".

    If that fails, try re-downloading raphael.js.