PlotFactory実装サービス jp.ossc.nimbus.service.graph.XYPlotFactoryService

jp.ossc.nimbus.service.graph.XYPlotFactoryServiceは、X軸、y軸を持つグラフの二次元描画領域を表すXYPlotを作成するPlotFactory実装サービスです。

このサービスは、複合的なサービスで、以下のサービスを下位サービスとして使用します。

下位サービスインタフェース用途
jp.ossc.nimbus.service.graph.DatasetFactoryグラフのデータDatasetを生成する。
jp.ossc.nimbus.service.graph.TickUnitAdjusterグラフの軸の目盛りを調整する。

以下に簡単なサービス定義を示します。

  1. <?xml version="1.0" encoding="Shift_JIS"?>
  2. <!DOCTYPE server PUBLIC
  3. "-//Nimbus//DTD Nimbus 1.0//JA"
  4. "http://nimbus.sourceforge.jp/dtd/nimbus-service_1_0.dtd">
  5. <server>
  6. <manager>
  7. <!-- Plotを生成するPlotFactoryサービス -->
  8. <service name="PlotFactory"
  9. code="jp.ossc.nimbus.service.graph.XYPlotFactoryService">
  10. <!-- PlotConditionでPlotを特定するためのPlotの名前を設定する -->
  11. <attribute name="Name">Sample1</attribute>
  12. <!-- Datasetを生成するDatasetFactoryサービスのサービス名を設定する -->
  13. <attribute name="DatasetFactoryServiceNames">
  14. #DatasetFactory
  15. </attribute>
  16. <!-- 縦軸を描画するAxisサービスのサービス名を設定する -->
  17. <attribute name="RangeAxisServiceNames">
  18. #NumberAxis
  19. </attribute>
  20. <!-- 横軸を描画するAxisサービスのサービス名を設定する -->
  21. <attribute name="DomainAxisServiceNames">
  22. #TimeAxis
  23. </attribute>
  24. <depends>#DatasetFactory</depends>
  25. <depends>#NumberAxis</depends>
  26. <depends>#TimeAxis</depends>
  27. </service>
  28. <!-- Datasetを生成するDatasetFactoryサービス -->
  29. <service name="DatasetFactory"
  30. code="jp.ossc.nimbus.service.graph.CSVFileTimeSeriesCollectionFactoryService">
  31. <attribute name="DateFormatPattern">yyyy/MM/dd HH:mm:ss</attribute>
  32. <attribute name="CSVFileInfo(時系列データ1)">
  33. <object code="jp.ossc.nimbus.service.graph.CSVFileTimeSeriesCollectionFactoryService$CSVFileInfo">
  34. <attribute name="File">./data1.csv</attribute>
  35. </object>
  36. </attribute>
  37. <attribute name="TimePeriodClass(時系列データ1)">org.jfree.data.time.Second</attribute>
  38. </service>
  39. <!-- 横軸を描画するAxisを生成するファクトリサービス -->
  40. <service name="TimeAxis"
  41. code="org.jfree.chart.axis.DateAxis"
  42. instance="factory">
  43. <attribute name="Label">時刻</attribute>
  44. <attribute name="TickUnit">
  45. <!-- 30分刻みでHH:mmのフォーマットで時刻を表示するTickUnit -->
  46. <object code="org.jfree.chart.axis.DateTickUnit">
  47. <constructor>
  48. <argument type="int">
  49. <static-field-ref code="org.jfree.chart.axis.DateTickUnit" name="MINUTE"/>
  50. </argument>
  51. <argument type="int">30</argument>
  52. <argument type="java.text.DateFormat">
  53. <object code="java.text.SimpleDateFormat">
  54. <constructor>
  55. <argument>HH:mm</argument>
  56. </constructor>
  57. </object>
  58. </argument>
  59. </constructor>
  60. </object>
  61. </attribute>
  62. </service>
  63. <!-- 縦軸を描画するAxisを生成するファクトリサービス -->
  64. <service name="NumberAxis"
  65. code="org.jfree.chart.axis.NumberAxis"
  66. instance="factory">
  67. <attribute name="Label"></attribute>
  68. </service>
  69. </manager>
  70. </server>

XYPlotFactoryService向けインタフェースTickUnitAdjuster

インタフェースjp.ossc.nimbus.service.graph.TickUnitAdjusterは、グラフの軸の目盛りを調整する機能を抽象化したものです。

このインタフェースの実装サービスは、下位サービスで、以下の上位サービスから使用します。

上位サービス用途
jp.ossc.nimbus.service.graph.XYPlotFactoryService軸の目盛りを調整するために使用する

実装サービスの一覧は以下のとおりです。

実装サービス実装概要
jp.ossc.nimbus.service.graph.NumberAxisTickUnitAdjusterService数値軸NumberAxisの目盛りを調整する。
jp.ossc.nimbus.service.graph.DateAxisTickUnitAdjusterService時間軸DateAxisの目盛りを調整する。

TickUnitAdjuster向けインタフェースTickUnitAdjustCommonDivisorMap

インタフェースjp.ossc.nimbus.service.graph.TickUnitAdjustCommonDivisorMapは、グラフの軸の目盛りを調整する時に、切りのいい目盛りにするために公約数を取得する機能を抽象化したものです。

このインタフェースの実装サービスは、下位サービスで、以下の上位サービスから使用します。

上位サービス用途
jp.ossc.nimbus.service.graph.TickUnitAdjuster軸の目盛りを調整するための公約数を取得するために使用する

実装サービスの一覧は以下のとおりです。

実装サービス実装概要
jp.ossc.nimbus.service.graph.TickUnitAdjustCommonDivisorMapService数値毎の公約数のマッピングを提供する。


グラフ/PlotFactory