Thread Rating:
  • 258 Vote(s) - 2.77 Average
  • 1
  • 2
  • 3
  • 4
  • 5
グラフ上に数値を表示する方法
07-27-2011, 02:48 PM,
#1
グラフ上に数値を表示する方法
グラフ上に数値を表示する良い方法があったら教えてください。

現状は、ChartLayerのshape-factoryプロパティにTextShapeを入れて表示しています。
BarLayerの場合は割ときれいに表示されるのですが、
LineLayerの場合はプロットと数値が重なって見づらくなってしまいます・・・。

よろしくお願いします!
Reply
07-27-2011, 04:24 PM, (This post was last modified: 07-27-2011, 04:26 PM by hmino.)
#2
RE: グラフ上に数値を表示する方法
どのような感じにみせたいのですか?


以下のLineLayerのshape-factoryのサンプルのような実装をしたのですか?
http://developers.curlap.com/curl/docs/r...Layer.html


もし、プロットと重ならないようにするならば、ずらせばいいのではないでしょうか?
shapeにはapply-translationというメソッドがありますので、それを使えば移動できますよ。

上記のサンプルを変更する形ならこんな感じですかね。
Code:
shape-factory =
                {proc
                    {layer:LineLayer,
                     points:{FastArray-of PointRecordPair},
                     series-index:int
                    }:Shape
                    let constant fill-pattern:FillPattern =
                        {layer.get-fill-pattern-for-data-series series-index}
                    let constant group:ShapeGroup =
                        {ShapeGroup
                            arrow-body-width = 2px,
                            arrow-head-width = 8px,
                            arrow-head-length = 12px,
                            arrow-head-style = ArrowStyle.solid,
                            arrow-tail-style = ArrowStyle.none,
                            font-size = 8pt
                        }
                    {for point key idx in points do
                        {if idx < points.size - 1 then
                            || add by hmino
                            def ts={TextShape
                                       {value
                                           def fname =
                                               layer.y-axis-data[series-index].field.name
                                           {format "%.2g", point.record[fname]}
                                       },
                                       color = FillPattern.black,
                                       valign = "center"
                                   }

                            {group.add
                                {ArrowShape
                                    point.point,
                                    points[idx + 1].point,
                                    color = fill-pattern,
                                    {EllipseShape
                                        {GRect 5pt, 5pt, 5pt, 5pt},
                                        translation = point.point,
                                        color = {lighter-fill-pattern fill-pattern},
                                        ts
                                        ||delete by hmino
||--                                        {TextShape
||--                                            {value
||--                                                def fname =
||--                                                    layer.y-axis-data[series-index].field.name
||--                                                {format "%.2g", point.record[fname]}
||--                                            },
||--                                            color = FillPattern.black,
||--                                            valign = "center"
||--                                        }
                                    }
                                }
                            }
                            {ts.apply-translation 2mm, 1mm}
                        }
                    }
                    {return group}
                }

上のほうのコード削ってしまいましたが、わかりますかね?
Reply
07-28-2011, 08:52 AM,
#3
RE: グラフ上に数値を表示する方法
頂いたソースコードで確認できました。
簡単にずらせるんですね!

ありがとうございます!

Reply
07-28-2011, 08:57 AM,
#4
RE: グラフ上に数値を表示する方法
他にもapply-XXXXというメソッド(回転とか)がありますので使ってみてください。
Reply

Forum Jump:


Users browsing this thread:
1 Guest(s)

MyBB SQL Error

MyBB has experienced an internal SQL error and cannot continue.

SQL Error:
1017 - Can't find file: 'mybb_threadviews' (errno: 2)
Query:
INSERT INTO mybb_threadviews (tid) VALUES('162')