2016-07-01 26 views
1

x軸のテキストのみを選択して回転する方法! この例では: http://dc-js.github.io/dc.js/examples/heat.htmldc.jsヒートマップテキストの回転方法

したがって、1から20までを選択して回転してください。

私はこの方法で試してみました:

chart 
.selectAll("g.cols.axis > text") 
.attr("text-anchor", "middle") 
.attr("transform", function() { 
    return "rotate(-20)" 
    }) 
.style("fill", "blue"); 

をI'amは全体のX軸およびseparatlyないすべてのテキストを選択しているようです。 塗りつぶしスタイルはうまくいきますが、変形が正しく機能せず、斧が完全に回転しています。

答えて

2

X軸の各テキスト要素をそれぞれの中心の周りに回転させる必要があります。

chart.selectAll('g.cols.axis > text') 
      .attr('transform', function (d) { 
       var coord = this.getBBox(); 
       var x = coord.x + (coord.width/2), 
        y = coord.y + (coord.height/2); 
       return "rotate(-20 "+x+" "+y+")" 
       }); 

chart.render();に呼び出した後、それを行う覚えているか、あなたの選択は空になります:あなたは、回転角度と心のそれと回転

rotate(angle centerX centerY) 

の中心を指定しなければならないことを行うには、あなたが行うことができます

あなたは、これは、を見てみ理由を理解したい場合:https://sarasoueidan.com/blog/svg-transformations/

Here the working code

+1

少なくとも2.0のベータ版を使用している場合は、これを実行するのに最適な場所は '.on( 'pretransition'、function(chart){{}})'です。これは、レンダリングまたは再描画の後で発生します。 (以前のバージョンではレンダレットですが、トランジションの後にジャンプがありますので) – Gordon

+0

ありがとうございます!できます ! もう1つの質問があります.X軸に長さの異なる複数の文字列があるとどうなりますか?それらの文字列を各最初のcharから描画する方法を教えてください。 .attr( 'dy'、 '+50')を使用した場合、結果は悪くなくても良いです。各文字列の長さが異なるために... chart.selectAll( "g.cols.axis text") .attr( 'dy'、 '+50') .attr( "transform"、function(){ var coord = this.getBBox(); var x = coord.x +(coord.width/2)、 y = coord.y +(coord.height/2); return "rotate(90" + x + "" + y + ")" }) .style( "fill"、 "blue"); –

+0

テキストラベルは 'text-anchor'プロパティを使用して整列させることができます。 '開始' '中間' '終了'。こちらをご覧ください:https://developer.mozilla.org/en/docs/Web/SVG/Attribute/text-anchor – Klaujesi

0

あなたの探しているものは何ですか?

.cols.axis text{ 
    transform-origin: center; 
    transform: rotateX(-20deg); 
} 

私はそれだけで、チャート上にそれらを移動するので、あなたたいが、上の回転軸だかはわからない - しかし、任意の軸のためにあなただけの回転X/Y/Zを使用することができます!

+0

ああ、私はあなたが何を意味するかを見ます...うーん。 – will

+0

それはCSSのセレクタ.selectAll( "g.cols.axis> text")に問題があるようです。 –

+1

実際には、変換元が軸を設定していても軸の左に詰まっているようです各要素 – will

関連する問題