2

私はjpgraphでこの問題に悩まされています.約6000人の他のプレイヤーとのオンラインゲームでのユーザーの進行状況を示す図(線)を作成する必要があります. したがって、y 軸はランキングでのユーザーの位置を示し、6000 から 1 まで (最後の位置から最初の位置) になります。x 軸はタイムラインです。

そのため、最初に x 軸スケールを反転する必要があります。ドキュメントでは問題ありません。

しかし、私はスケールを「一種の」対数にしたいと考えています。つまり、x 軸の値を次のようにしたいということです。 500、400、300、200、100、50、40、30、20、10、9、8、7、6、5、4、3、2、1

私はすでにこのようなスケールを得ることができましたが、値が小さくなるほど、ラベル間の距離が小さくなります。-私が望むのは、すべてのラベル間の距離を等しくすることです。- したがって、図では、6000 から 5000 までのステップは、50 から 40 までのステップまたは 2 から 1 までのステップと同じくらいのスペースを取る必要があります。

多かれ少なかれ明確に説明できることを願っています。そうでない場合は、絵を追加します (私は絵が苦手です)。

4

1 に答える 1

0

表示される値が正の値のみになる場合は、スケールを負にして、値を逆方向に表示することができます。JPGraph は、スケールを段階的に表示するように構築されています。この場合、値を減らして負の値を正にします。 .

-5,-4,-3,-2,-1,0,+1,+2,+3, +4,+5 (これを反転します) 必要なのは、値を関数で交換することだけです。

function _cb_negate ( $aVal ) { 
 return round (- $aVal ); 
} 

それで:

$graph -> xaxis -> SetLabelFormatCallback ( "_cb_negate" );

ログを使用するには、負の値を使用できないため、x 軸で値を最小から最大に並べ替える必要があります。配列に入れ、それらを負の値にします。

それがうまくいくことを願っています!

編集: yaxis に例を追加し、xaxis でも動作します: http://www.asial.co.jp/jpgraph/demo/src/Examples/show-example.php?target=inyaxisex1.php

于 2014-08-25T17:45:51.623 に答える