public IChartVisual AppendChartVisual(string name)
        {
            ChartPart chartPart = this.container.Part.AddNewPartDefaultId <ChartPart>();

            chartPart.ChartSpace = new Charts.ChartSpace()
            {
                Date1904 = new Charts.Date1904()
                {
                    Val = false
                }
            }
            .AppendChildFluent(
                new Charts.Chart()
            {
                PlotArea        = new Charts.PlotArea(),
                DisplayBlanksAs = new Charts.DisplayBlanksAs()
                {
                    Val = Charts.DisplayBlanksAsValues.Gap
                }
            }
                );

            Charts.Chart chart = new Charts.Chart();
            chart.SetAttribute(new OpenXmlAttribute("r", "id", "http://schemas.openxmlformats.org/officeDocument/2006/relationships", this.container.Part.GetIdOfPart(chartPart)));

            GraphicFrame graphicFrame = this.shapeTree.AppendChild(new GraphicFrame()
            {
                NonVisualGraphicFrameProperties = new NonVisualGraphicFrameProperties()
                {
                    NonVisualDrawingProperties = new NonVisualDrawingProperties()
                    {
                        Name = name,
                        Id   = 6 // TODO: calculate
                    },
                    NonVisualGraphicFrameDrawingProperties = new NonVisualGraphicFrameDrawingProperties(),
                    ApplicationNonVisualDrawingProperties  = new ApplicationNonVisualDrawingProperties()
                },
                Graphic = new Drawing.Graphic()
                {
                    GraphicData = new Drawing.GraphicData()
                    {
                        Uri = "http://schemas.openxmlformats.org/drawingml/2006/chart"
                    }
                    .AppendChildFluent(chart)
                }
            });

            return(new OpenXmlChartVisual(this.container, graphicFrame));
        }