2016-04-08 4 views
0

Ich versuchte http://bl.ocks.org/godds/ec089a2cf3e06a2cd5fc Allerdings fand ich, wenn ich die Bürste verwendete, ist der Hauptteil der gestapelten Bar außerhalb der Grenze. Wie man es repariert? Ich denke, hier ist der Grund: some bars should not be shown in the main part but they are still in the scope of svg Vielen Dank für Ihre Hilfe!Wie behebt man das d3-Objekt?

+0

Post relevanter Code kann anderen helfen, Ihnen zu helfen. –

+0

dies ist der Link http://bl.ocks.org/godds/ec089a2cf3e06a2cd5fc –

Antwort

0

Diese Zoomtypen sind buchstäblich nur geometrische Zooms, alle Balken werden noch gezeichnet, es ist nur so, dass die große Mehrheit außerhalb des Bildschirms liegt, einige liegen innerhalb der Diagrammgrenzen und einige liegen in der Achslücke dazwischen welche sind die, die peinlich aussehen.

ein SVG-Clip erstellen, und fügen Sie es auf der rechten Seite 'g' Element dieser Effekt loszuwerden:

svg.append("defs").append("clipPath") 
      .attr("id", "myclip") 
      .append ("rect") 
      .attr({x: 0, width: width, y: margin.top, height: height}); 

... und später im Code

// draw the bars 
     main.append("g") 
       .attr("clip-path", "url(#myclip)") 
       .attr("class", "bars") 
+0

Es funktioniert! Vielen Dank sooooo viel :-) –

+0

Übrigens könntest du helfen, die Verwendung von URL (# ..) zu erklären. Ich bin nicht damit vertraut :-) –

+0

'url (#whatever)' zeigt nur auf das Element mit der ID 'was auch immer' im selben Dokument, es ist, wie das Clip-Pfad-Attribut Dinge zu sehen erwartet. In diesem Fall zeigt es auf die ID 'myclip', die die ID des clipPath-Elements ist, das wir zum Abschneiden verwenden. https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/clip-path – mgraham