2010年1月31日日曜日

groovyとJFreeChartでグラフの線の太さを設定する

groovyとJFreeChartでグラフの線の太さを設定するには、以下のコードを実行します。

import org.jfree.chart.*
import org.jfree.chart.plot.*
import org.jfree.data.category.*

dcd = new DefaultCategoryDataset()
dcd.with {
addValue(100, "ABC Inc.", "Jan 2010")
addValue(110, "ABC Inc.", "Feb 2010")
addValue(120, "ABC Inc.", "Mar 2010")
addValue(90, "DEF Corp.", "Jan 2010")
addValue(120, "DEF Corp.", "Feb 2010")
addValue(110, "DEF Corp.", "Mar 2010")
}

jfc = ChartFactory.createLineChart(
"売上推移",
"年月",
"売上",
dcd,
PlotOrientation.VERTICAL,
true,
false,
false)

// 線の太さを設定
jfc.getPlot().getRenderer().setSeriesStroke(
0, new java.awt.BasicStroke(5)
)
jfc.getPlot().getRenderer().setSeriesStroke(
1, new java.awt.BasicStroke(2)
)

ChartUtilities.saveChartAsPNG(new File("./line-width.png"), jfc, 300, 200)


出力画像(line-width.png)


動作環境
JDK1.6 Update 15, groovy 1.6.3, JFreeChart1.0.13, JCommon1.0.16

2010年1月30日土曜日

groovyとJFreeChartで線の色を設定する

groovyとJFreeChartで線の色を設定するには、以下のコードを実行します。

import org.jfree.chart.*
import org.jfree.chart.plot.*
import org.jfree.data.category.*

dcd = new DefaultCategoryDataset()
dcd.with {
addValue(100, "ABC Inc.", "Jan 2010")
addValue(110, "ABC Inc.", "Feb 2010")
addValue(120, "ABC Inc.", "Mar 2010")
addValue(90, "DEF Corp.", "Jan 2010")
addValue(120, "DEF Corp.", "Feb 2010")
addValue(110, "DEF Corp.", "Mar 2010")
}

jfc = ChartFactory.createLineChart(
"売上推移",
"年月",
"売上",
dcd,
PlotOrientation.VERTICAL,
true,
false,
false)

// 線の色を設定
jfc.getPlot().getRenderer().setSeriesPaint(
0, new java.awt.Color(0x22, 0x33, 0x88)
)
jfc.getPlot().getRenderer().setSeriesPaint(
1, new java.awt.Color(0x70, 0x70, 0x33)
)

ChartUtilities.saveChartAsPNG(new File("./line-color.png"), jfc, 300, 200)


出力画像(line-color.png)


動作環境
JDK1.6 Update 15, groovy 1.6.3, JFreeChart1.0.13, JCommon1.0.16

2010年1月29日金曜日

groovyとJFreeChartでグラフ以外の部分の背景をグラデーションに設定する

groovyとJFreeChartでグラフ以外の部分の背景をグラデーションに設定するには、以下のコードを実行します。

import org.jfree.chart.*
import org.jfree.chart.plot.*
import org.jfree.data.category.*

dcd = new DefaultCategoryDataset()
dcd.with {
addValue(100, "ABC Inc.", "Jan 2010")
addValue(110, "ABC Inc.", "Feb 2010")
addValue(120, "ABC Inc.", "Mar 2010")
addValue(90, "DEF Corp.", "Jan 2010")
addValue(120, "DEF Corp.", "Feb 2010")
addValue(110, "DEF Corp.", "Mar 2010")
}

jfc = ChartFactory.createLineChart(
"売上推移",
"年月",
"売上",
dcd,
PlotOrientation.VERTICAL,
true,
false,
false)

// グラフ以外の部分の背景をグラデーションに設定
jfc.setBackgroundPaint(
new java.awt.GradientPaint(
0, 0, new java.awt.Color(0xbb, 0xdd, 0xff),
100, 200, java.awt.Color.WHITE
)
)

ChartUtilities.saveChartAsPNG(new File("./bg-gradient.png"), jfc, 300, 200)


出力画像(bg-gradient.png)


動作環境
JDK1.6 Update 15, groovy 1.6.3, JFreeChart1.0.13, JCommon1.0.16

2010年1月28日木曜日

groovyとJFreeChartでグラフ以外の部分の背景色を設定する

groovyとJFreeChartでグラフ以外の部分の背景色を設定するには、以下のコードを実行します。

import org.jfree.chart.*
import org.jfree.chart.plot.*
import org.jfree.data.category.*

dcd = new DefaultCategoryDataset()
dcd.with {
addValue(100, "ABC Inc.", "Jan 2010")
addValue(110, "ABC Inc.", "Feb 2010")
addValue(120, "ABC Inc.", "Mar 2010")
addValue(90, "DEF Corp.", "Jan 2010")
addValue(120, "DEF Corp.", "Feb 2010")
addValue(110, "DEF Corp.", "Mar 2010")
}

jfc = ChartFactory.createLineChart(
"売上推移",
"年月",
"売上",
dcd,
PlotOrientation.VERTICAL,
true,
false,
false)

// グラフ以外の部分の背景色を設定
jfc.setBackgroundPaint(new java.awt.Color(0xbb, 0xdd, 0xff))

ChartUtilities.saveChartAsPNG(new File("./bgcolor.png"), jfc, 300, 200)


出力画像(bgcolor.png)


動作環境
JDK1.6 Update 15, groovy 1.6.3, JFreeChart1.0.13, JCommon1.0.16

2010年1月27日水曜日

groovyとJFreeChartでグラフの背景をグラデーションに設定する

groovyとJFreeChartでグラフの背景をグラデーションに設定するには、以下のコードを実行します。

import org.jfree.chart.*
import org.jfree.chart.plot.*
import org.jfree.data.category.*

dcd = new DefaultCategoryDataset()
dcd.with {
addValue(100, "ABC Inc.", "Jan 2010")
addValue(110, "ABC Inc.", "Feb 2010")
addValue(120, "ABC Inc.", "Mar 2010")
addValue(90, "DEF Corp.", "Jan 2010")
addValue(120, "DEF Corp.", "Feb 2010")
addValue(110, "DEF Corp.", "Mar 2010")
}

jfc = ChartFactory.createLineChart(
"売上推移",
"年月",
"売上",
dcd,
PlotOrientation.VERTICAL,
true,
false,
false)

// グラフの背景色をグラデーションに設定
jfc.getPlot().setBackgroundPaint(
new java.awt.GradientPaint(
0, 0, new java.awt.Color(0xbb, 0xdd, 0xff),
10, 100, java.awt.Color.WHITE
)
)

ChartUtilities.saveChartAsPNG(new File("./gradient.png"), jfc, 300, 200)


出力画像(gradient.png)


動作環境
JDK1.6 Update 15, groovy 1.6.3, JFreeChart1.0.13, JCommon1.0.16

2010年1月26日火曜日

groovyとJFreeChartでグラフのグリッド線を非表示に設定する

groovyとJFreeChartでグラフのグリッド線を非表示に設定するには、以下のコードを実行します。

import org.jfree.chart.*
import org.jfree.chart.plot.*
import org.jfree.data.category.*

dcd = new DefaultCategoryDataset()
dcd.with {
addValue(100, "ABC Inc.", "Jan 2010")
addValue(110, "ABC Inc.", "Feb 2010")
addValue(120, "ABC Inc.", "Mar 2010")
addValue(90, "DEF Corp.", "Jan 2010")
addValue(120, "DEF Corp.", "Feb 2010")
addValue(110, "DEF Corp.", "Mar 2010")
}

jfc = ChartFactory.createLineChart(
"売上推移",
"年月",
"売上",
dcd,
PlotOrientation.VERTICAL,
true,
false,
false)

// グラフのグリッド線を非表示に設定
jfc.getPlot().setRangeGridlinesVisible(false)

ChartUtilities.saveChartAsPNG(new File("./no-gridline.png"), jfc, 300, 200)


出力画像(no-gridline.png)


動作環境
JDK1.6 Update 15, groovy 1.6.3, JFreeChart1.0.13, JCommon1.0.16

2010年1月25日月曜日

groovyとJFreeChartでグラフのグリッド線の色を設定する

groovyとJFreeChartでグラフのグリッド線の色を設定するには、以下のコードを実行します。

import org.jfree.chart.*
import org.jfree.chart.plot.*
import org.jfree.data.category.*

dcd = new DefaultCategoryDataset()
dcd.with {
addValue(100, "ABC Inc.", "Jan 2010")
addValue(110, "ABC Inc.", "Feb 2010")
addValue(120, "ABC Inc.", "Mar 2010")
addValue(90, "DEF Corp.", "Jan 2010")
addValue(120, "DEF Corp.", "Feb 2010")
addValue(110, "DEF Corp.", "Mar 2010")
}

jfc = ChartFactory.createLineChart(
"売上推移",
"年月",
"売上",
dcd,
PlotOrientation.VERTICAL,
true,
false,
false)

// グラフのグリッド線の色を設定
jfc.getPlot().setRangeGridlinePaint(new java.awt.Color(0, 192, 0))

ChartUtilities.saveChartAsPNG(new File("./gridline.png"), jfc, 300, 200)


出力画像(gridline.png)


動作環境
JDK1.6 Update 15, groovy 1.6.3, JFreeChart1.0.13, JCommon1.0.16

2010年1月24日日曜日

groovyとJFreeChartでグラフの枠線を表示しないようにする

groovyとJFreeChartでグラフの枠線を表示しないようにするには、以下のコードを実行します。

import org.jfree.chart.*
import org.jfree.chart.plot.*
import org.jfree.data.category.*

dcd = new DefaultCategoryDataset()
dcd.with {
addValue(100, "ABC Inc.", "Jan 2010")
addValue(110, "ABC Inc.", "Feb 2010")
addValue(120, "ABC Inc.", "Mar 2010")
addValue(90, "DEF Corp.", "Jan 2010")
addValue(120, "DEF Corp.", "Feb 2010")
addValue(110, "DEF Corp.", "Mar 2010")
}

jfc = ChartFactory.createLineChart(
"売上推移",
"年月",
"売上",
dcd,
PlotOrientation.VERTICAL,
true,
false,
false)

// グラフの枠線を表示しないように設定
jfc.getPlot().setOutlineVisible(false)

ChartUtilities.saveChartAsPNG(new File("./no-outline.png"), jfc, 300, 200)


出力画像(no-outline.png)

※Grabを使用する場合は、以下の行を先頭に追加します。
@Grab(group='jfree', module='jfreechart', version='1.0.12')

動作環境
・JDK1.6 Update 15, groovy 1.6.3, JFreeChart1.0.13, JCommon1.0.16
・groovy 1.8.2, JDK6 Update27, jfreechart 1.0.12

2010年1月23日土曜日

groovyとJFreeChartでグラフの枠線の色を設定する

groovyとJFreeChartでグラフの枠線の色を設定するには、以下のコードを実行します。

import org.jfree.chart.*
import org.jfree.chart.plot.*
import org.jfree.data.category.*

dcd = new DefaultCategoryDataset()
dcd.with {
addValue(100, "ABC Inc.", "Jan 2010")
addValue(110, "ABC Inc.", "Feb 2010")
addValue(120, "ABC Inc.", "Mar 2010")
addValue(90, "DEF Corp.", "Jan 2010")
addValue(120, "DEF Corp.", "Feb 2010")
addValue(110, "DEF Corp.", "Mar 2010")
}

jfc = ChartFactory.createLineChart(
"売上推移",
"年月",
"売上",
dcd,
PlotOrientation.VERTICAL,
true,
false,
false)

// グラフの枠線の色設定
jfc.getPlot().setOutlinePaint(new java.awt.Color(0, 192, 0))

ChartUtilities.saveChartAsPNG(new File("./outlinecolor.png"), jfc, 300, 200)


出力画像(outlinecolor.png)

※Grabを使用する場合は、以下の行を先頭に追加します。
@Grab(group='jfree', module='jfreechart', version='1.0.12')

動作環境
・JDK1.6 Update 15, groovy 1.6.3, JFreeChart1.0.13, JCommon1.0.16
・groovy 1.8.2, JDK6 Update27, jfreechart 1.0.12

2010年1月22日金曜日

groovyとJFreeChartでグラフの背景色を設定する

groovyとJFreeChartでグラフの背景色を設定するには、以下のコードを実行します。

import org.jfree.chart.*
import org.jfree.chart.plot.*
import org.jfree.data.category.*

dcd = new DefaultCategoryDataset()
dcd.with {
addValue(100, "ABC Inc.", "Jan 2010")
addValue(110, "ABC Inc.", "Feb 2010")
addValue(120, "ABC Inc.", "Mar 2010")
addValue(90, "DEF Corp.", "Jan 2010")
addValue(120, "DEF Corp.", "Feb 2010")
addValue(110, "DEF Corp.", "Mar 2010")
}

jfc = ChartFactory.createLineChart(
"売上推移",
"年月",
"売上",
dcd,
PlotOrientation.VERTICAL,
true,
false,
false)

// 背景色の設定
jfc.getPlot().setBackgroundPaint(new java.awt.Color(255, 200, 0))

ChartUtilities.saveChartAsPNG(new File("./bgcolor.png"), jfc, 300, 200)


出力画像(bgcolor.png)

※Grabを使用する場合は、以下の行を先頭に追加します。
@Grab(group='jfree', module='jfreechart', version='1.0.12')

動作環境
・JDK1.6 Update 15, groovy 1.6.3, JFreeChart1.0.13, JCommon1.0.16
・groovy 1.8.2, JDK6 Update27, jfreechart 1.0.12

2010年1月21日木曜日

groovyとROMEでbloggerのエクスポートファイルから特定のカテゴリの情報を取得する

groovyとROMEで、bloggerのエクスポートファイルから特定のカテゴリの情報を取得するには、以下のコードを実行します。

// JDK6 Update17, groovy 1.6.5, Rome 1.0, JDOM 1.1.1
import com.sun.syndication.feed.synd.*
import com.sun.syndication.io.*

filename = "blog-11-01-2009.xml"
SyndFeed feed = new SyndFeedInput(false).build(
new InputStreamReader(new FileInputStream(filename), "UTF-8")
)
// 抽出するカテゴリ
categoryName = "groovy";

println("フィードのタイトル:${feed.title}")
for( entry in feed.entries ){
cf = false;
for(cat in entry.getCategories() ){
if( cat.getName().equals(categoryName) ){
cf = true; break;
}
}
if( !cf )continue;
println("エントリタイトル:${entry.title}")
println("エントリの日付:${entry.publishedDate}")
println("Link:${entry.link}")
}


動作環境
・JDK6 Update17, groovy 1.6.5, Rome 1.0, JDOM 1.1.1
・JDK6 Update22, groovy 1.7.5, Rome 1.0, JDOM 1.1.1

2010年1月20日水曜日

groovyでoracleのサービス一覧を表示する

groovyでoracleのサービス一覧を表示するには、以下のコードを実行します。


import groovy.sql.Sql

sql = Sql.newInstance(
"jdbc:oracle:thin:@localhost:1521:orcl",
"system",
"system",
"oracle.jdbc.driver.OracleDriver")

query = """
select name, network_name, goal, enabled from all_services
"""
// サービス一覧
sql.eachRow(query){
// サービス名
println("name:${it.name}")
// ネットワーク名
println("network_name:${it.network_name}")
// ゴール
println("goal:${it.goal}")
// enableか
println("enabled:${it.enabled}")
println "----"
}


動作環境
Groovy 1.6.4, JDK6 Update16, Oracle11g R1

関連情報
ALL_SERVICES

2010年1月19日火曜日

groovyでoracleのアーカイブログモードを取得する

groovyでoracleのアーカイブログモードを取得するには、以下のコードを実行します。


import groovy.sql.Sql

sql = Sql.newInstance(
"jdbc:oracle:thin:@localhost:1521:orcl",
"system",
"system",
"oracle.jdbc.driver.OracleDriver")

query = """
select log_mode from v\$database
"""
// アーカイブログモードの取得
sql.eachRow(query){
// ログモード
println("log_mode:${it.log_mode}")
println "----"
}


動作環境
Groovy 1.6.4, JDK6 Update16, Oracle11g R1

V$DATABASE

2010年1月18日月曜日

groovyでoracleの製品コンポーネントのバージョン情報を表示する

groovyでoracleの製品コンポーネントのバージョン情報を表示するには、以下のコードを実行します。


import groovy.sql.Sql

sql = Sql.newInstance(
"jdbc:oracle:thin:@localhost:1521:orcl",
"system",
"system",
"oracle.jdbc.driver.OracleDriver")

query = """
select * from product_component_version
"""
// 製品コンポーネントのバージョン情報
sql.eachRow(query){
// 製品名
println("product:${it.product}")
// バージョン
println("version:${it.version}")
// リリースのステータス
println("status:${it.status}")
println "----"
}


動作環境
Groovy 1.6.4, JDK6 Update16, Oracle11g R1

PRODUCT_COMPONENT_VERSION

2010年1月17日日曜日

groovyでoracleのインスタンス開始後のSGAリサイズ操作の情報を取得する

groovyでoracleのインスタンス開始後のSGAリサイズ操作の情報を取得するには、以下のコードを実行します。


import groovy.sql.Sql

sql = Sql.newInstance(
"jdbc:oracle:thin:@localhost:1521:orcl",
"system",
"system",
"oracle.jdbc.driver.OracleDriver")

query = """
select * from v\$memory_dynamic_components
"""
// インスタンス開始後のSGAリサイズ操作の情報
sql.eachRow(query){
// コンポーネント名
println("component:${it.component}")
// 現在のサイズ
println("current_size:${it.current_size}")
// 最後に行われた操作
println("last_oper_type:${it.last_oper_type}")
println "----"
}


動作環境
Groovy 1.6.4, JDK6 Update16, Oracle11g R1

関連情報
V$MEMORY_DYNAMIC_COMPONENTS

2010年1月16日土曜日

groovyでoracleのSGA情報を取得する

groovyでoracleのSGA情報を取得するには、以下のコードを実行します。


import groovy.sql.Sql

sql = Sql.newInstance(
"jdbc:oracle:thin:@localhost:1521:orcl",
"system",
"system",
"oracle.jdbc.driver.OracleDriver")

query = """
select * from v\$sgainfo
"""
// SGA情報の取得
sql.eachRow(query){
// コンポーネント名
println("name:${it.name}")
// バイト数
println("bytes:${it.bytes}")
// 変更可能か
println("resizeable:${it.resizeable}")
println "----"
}


動作環境
Groovy 1.6.4, JDK6 Update16, Oracle11g R1

関連情報
Memory Management Reference

2010年1月15日金曜日

groovyでoracleの自動メモリ管理パラメータ(max_target)の取得する

groovyでoracleの自動メモリ管理パラメータ(max_target)の取得するには、以下のコードを実行します。


import groovy.sql.Sql
sql = Sql.newInstance(
"jdbc:oracle:thin:@localhost:1521:orcl",
"system",
"system",
"oracle.jdbc.driver.OracleDriver")

query = """
select * from v\$parameter where name = 'memory_target'
"""
// 自動メモリ管理パラメータ(max_target)の取得
sql.eachRow(query){
// パラメータ名
println("name:${it.name}")
// 設定値
println("value:${it.value}")
// 表示値
println("display_value:${it.display_value}")
// 説明
println("description:${it.description}")
println "----"
}


動作環境
Groovy 1.6.4, JDK6 Update16, Oracle11g R1

Using Automatic Memory Management

2010年1月14日木曜日

groovyとSQL Serverで既定のインデックスFILL FACTORを取得する

groovyとSQL Serverで既定のインデックスFILL FACTORを取得するには、以下のコードを実行します。

import groovy.sql.Sql

sql = Sql.newInstance(
"jdbc:sqlserver://localhost;databaseName=test1",
"sa",
"sa",
"com.microsoft.sqlserver.jdbc.SQLServerDriver")

query = """
select name, cast(value as integer) as value from sys.configurations where configuration_id = 109
"""
// 既定のインデックスFILL FACTORを取得
sql.eachRow(query){
// 構成オプション名
println("name:${it.name}")
// 設定値
println("value:${it.value}")
}


動作環境
Groovy 1.6.5, JDK6 Update16, SQL Server JDBC Driver 2.0,
SQL Server 2008 Express

sys.configurations (Transact-SQL)

2010年1月13日水曜日

groovyとSQL ServerでデータファイルとログファイルのI/O統計を取得する

groovyとSQL ServerでデータファイルとログファイルのI/O統計を取得するには、以下のコードを実行します。

import groovy.sql.Sql

sql = Sql.newInstance(
"jdbc:sqlserver://localhost;databaseName=test1",
"sa",
"sa",
"com.microsoft.sqlserver.jdbc.SQLServerDriver")

query = """
select
fs.database_id,
fs.file_id,
df.name,
fs.sample_ms,
fs.num_of_reads,
fs.num_of_bytes_read,
fs.io_stall_read_ms,
fs.num_of_writes,
fs.num_of_bytes_written,
fs.io_stall_write_ms,
fs.io_stall,
fs.size_on_disk_bytes,
fs.file_handle
from sys.dm_io_virtual_file_stats(DB_ID('test1'), NULL) fs
join sys.database_files df
on (fs.file_id = df.file_id)
"""
// データファイルとログファイルのI/O統計
sql.eachRow(query){
// データベースID
println("database_id:${it.database_id}")
// ファイルID
println("file_id:${it.file_id}")
// ファイル論理名
println("name:${it.name}")
// コンピュータ起動後の経過秒
println("sample_ms:${it.sample_ms}")
// 読み取りの数
println("num_of_reads:${it.num_of_reads}")
// 読み取ったバイト数
println("num_of_bytes_read:${it.num_of_bytes_read}")
// 読み取りを待機した総時間(ms)
println("io_stall_read_ms:${it.io_stall_read_ms}")
// 書き込みの数
println("num_of_writes:${it.num_of_writes}")
// 書き込んだバイト数
println("num_of_bytes_written:${it.num_of_bytes_written}")
// 書き込みを待機した総時間(ms)
println("io_stall_write_ms:${it.io_stall_write_ms}")
// I/O待機した総時間(ms)
println("io_stall:${it.io_stall}")
// ディスク上のバイト数
println("size_on_disk_bytes:${it.size_on_disk_bytes}")
// windowsファイルハンドル
println("file_handle:${it.file_handle}")
println "----"
}


動作環境
Groovy 1.6.5, JDK6 Update16, SQL Server JDBC Driver 2.0,
SQL Server 2008 Express

関連情報
sys.dm_io_virtual_file_stats (Transact-SQL)

2010年1月12日火曜日

groovyとSQL Serverでログ領域の使用状況を調べる

groovyとSQL Serverでログ領域の使用状況を調べるには、以下のコードを実行します。

import groovy.sql.Sql

sql = Sql.newInstance(
"jdbc:sqlserver://localhost;databaseName=test1",
"sa",
"sa",
"com.microsoft.sqlserver.jdbc.SQLServerDriver")

query = """
dbcc sqlperf(LOGSPACE)
"""
// ログ領域の使用状況を調べる
sql.eachRow(query){
// データベース名
println("Database Name:${it[0]}")
// ログサイズ[MB]
println("Log Size[MB]:${it[1]}")
// ログ使用%
println("Log Space Used[%]:${it[2]}")
println "----"
}


動作環境
Groovy 1.6.5, JDK6 Update16, SQL Server JDBC Driver 2.0,
SQL Server 2008 Express

関連情報
DBCC SQLPERF (Transact-SQL)