• 締切済み

Javaで気温分布図

Javaで気温分布図を作りたいのです。 1)まず、データファイルから各行をストリングとして読み取り、 2)そのストリングをスペースで分けて、おのおの緯度、経度、平均気温とし、 3)それに従い、経度をx軸、緯度をy軸にしてピクセルごとに色(たとえば、10~20℃は黄色など)をつける。 1、2の作業はPerlでやると簡単なのですが、3が出来ないので、すべてJavaでやりたいのです。 どなたかよい方法、教えていただけませんか?

  • Java
  • 回答数1
  • ありがとう数0

みんなの回答

回答No.1

Javaでファイルから入力する方法は FileReader と BufferedReader を使うと楽です。こんな感じ。 BufferedReader in = new BufferedReader(new FileReader(filename)); String s; while ((s = in.readLine()) != null) {  // s に1行入っているので1行ごとの処理をここでする。 } in.close(); // 全部読み終ったのでクローズ Stringのインスタンスをスペースで区切って新たな String の配列を作るのは split() で出来ます。 String[] a = s.split("\s+"); \s は [ \t\n\x0B\f\r] と等価です。(多分 Perl の \s と同じで空白文字とマッチします)。

関連するQ&A

  • 理容所・美容所の緯度と経度について

     はじめまして。夜分遅くにすみません。 今、学校で分布図を作成しなければならず、私の班は「とある県の理容・美容業」の分布図を作成することになりました。 しかし、分布図には緯度と経度が必要みたいで、「総務省」や「国土交通省」等々、調べてはいるのですが見当たりません。(調べ方が悪いのだとは思いますが、思い当らなくて・・・)  どなたか、都道府県別の理容・美容施設の緯度と経度が載っているサイト等をご存知の方がいらっしゃいましたら、よろしくお願いします。

  • (エクセル)散布図における基準線の作成

    X軸に時間、Y軸に気温の散布図を作成しております。 このとき平均最高気温と平均最低気温を別の色で (数式で表すと最高気温【赤】Y=30.0、最低気温【青】Y=24.0) 補助線と重ねるような格好で表示する方法を探しています。 よろしくお願いいたします。

  • GPSで取得した値を別のクラスで利用する方法

    はじめまして。 僕はJavaの初心者で、今androidのアプリケーション作りに取り組んでいます。 ロケーションマネージャを利用して、現在地の緯度、経度の値を取得し、ある特定のポイント(例えば東京タワー)と現在地の距離を計算するアプリを作っています。 緯度、経度を取得するところまではできました。 次に、距離を求めるために、両点の緯度差、経度差を計算したいのですが、ロケーションリスナのクラスで取得した緯度、経度の値を、別のクラス(例えばスピナのリスナ)で利用するためにはどのようにすればよいのかがわからず困っています。 具体的には、下に示すロケーションリスナのクラスで取得したの"lt"と"ln"の値を、別のクラスで計算に利用したいです。 class SampleLocationListener implements LocationListener { public void onLocationChanged(Location lc) { double lt = (double) (lc.getLatitude()); double ln = (double) (lc.getLongitude()); } public void onProviderDisabled(String pv){} public void onProviderEnabled(String pv){} public void onStatusChanged(String pv, int status, Bundle ex){} } どなたか詳しい方、教えていただけたらうれしいです。 よろしくお願いします。

    • ベストアンサー
    • Java
  • 2点の場所から円をつくり交わるときの場所を知りたいです。

    お世話になります。 2点の位置(緯度、経度)がわかっており、 各2点を中心に各々の距離を半径とした2つの円があります。 その二つの円が重なっているとき まさに重なる2点の位置を知りたいのですが 求め方を教えていただけないでしょうか? 説明下手なので図らしきものを書いてみました http://cid-7eba03119b354396.skydrive.live.com/self.aspx/%e5%85%ac%e9%96%8b/Zu.bmp よろしくお願いいたします。

  • エクセルの散布図のグループ別での表示方法が分かりません。

    エクセルで、 たぶん散布図に分類されると思うのですが、 ある温度ごとの結果をドットで表す方法が分かりません。 例 700℃:1.4 2.0 1.5 1.8・・・ 800℃:2.5 2.4 2.6 2.7・・・・ 900℃:3.8 3.7 3.6 3.5・・ と、温度ごとにデータがあるとします。 そのとき、温度をX軸として、温度ごとに 対応するデータを分布させたいのです。 それで、温度ごとにマーカーの色を変えたいのですが、 その方法を教えてください。

  • Excel2000 分散図でのデータラベル表示方法

    色 数量 前年差 赤 10 -1,369 青 133 -66 黄 33 -85 黄 96 -27 緑 54 -30 白 25 -11 赤 138 -72 上記データを分散図にしたいと思います。データラベルとして色の名前を表示させるにはどうしたら良いのでしょうか? Xの値にB2:B8、Yの値にC2:C8を選択すると色名が表示されず、XYいずれかにA2:A8を含めると、色名は表示されるものの数字が狂ってしまいます。 ※)X軸を前年差、Y軸を数量とします。

  • javaの課題・・

    package jp.tuyano; import java.applet.Applet; import java.awt.Color; public class TestApplet19_07 extends Applet{ public void init(){ /* 普通の文字列を所得する場合 */ String strAddress = getParameter("ADDRESS"); if( strAddress == null ) strAddress = new String("住所不定"); /* WORD0, WORD1, ・・・, WORD20のパラメータを取得する場合 */ /* ただし、WORD20までは無いかもしれない */ String[] strWord = new String[20]; for(int i = 1 ; i < 20 ; i++ ){ strWord[i] = getParameter("WORD"+i); if ( strWord[i] == null ) break; } /* 色を"FFFF00"(黄色)のようなフォーマットで取得する場合 */ String strColor = getParameter("COLOR"); Color clr; try{ int r = Integer.parseInt( strColor.substring(0,2), 16 ); int g = Integer.parseInt( strColor.substring(2,4), 16 ); int b = Integer.parseInt( strColor.substring(4,6), 16 ); clr = new Color(r,g,b); }catch(Exception e){ System.err.println("カラーの設定が不正です:"+e); clr = new Color(0,0,0); } /* 数字を取得する場合 */ int n; try{ n = Integer.parseInt( getParameter("SIZE"), 10 ); }catch(Exception e){ n = 0; } } } あるサイトの例のソースを試しにeclipseに貼ってみたのですがどうも実行がうまくできません。 出たエラーが     この行に複数マーカーがあります - ローカル変数 clr は読み取られません - ローカル変数 clr は読み取られません Color clr; に黄色線が出て上記のような警告 この行に複数マーカーがあります - ローカル変数 n は読 み取られません int n;に黄色線がでて上記のような警告 またシリアライズ可能クラス TestApplet19_07 は long 型の static final serialVersionUID フィールドを宣言していません と public class TestApplet19_07 extends Applet{ の行に出ます ちなみに参考にしたサイトはhttp://www5c.biglobe.ne.jp/~ecb/java/19_07.htmlです 誰か教えてくれませんか><

  • ベクター図のボタンを作りたい

    javax.swing.JButtonでボタンを作って、そこにベクター図を埋め込みたいです。ドーすれば良いですか?サンプルプログラムを書いてくださったり、参考になりそうなホームページを紹介してくださると幸いです。 ボタンに文字(text)を埋め込む方法なら知ってます。ビットマップ図(.pngファイルなど)のアイコンを埋め込む方法も知ってます(ググればサンプルコードが沢山ヒットします)。しかし、ベクトルグラフィックスを埋め込むとなると、ハイレベルでしょうか? javax.swing.JButton maru=new JButton();//ボタンのインスタンス生成 void paint(java.awt.Graphics g){g.fillOval(100,100,100,100);}//位置のxyも短径長径も100ピクセルの楕円黒丸 maruボタンにsetText("●");とするのは簡単なのですが、やりたい事と少し違います。"●"は文字ですし、これだと半径の設定が厳しいです(フォントサイズを変えれば良いのでしょうが)。 やりたい事は、 maru.setIcon(java.awt.Graphics g.fillOval(100,100,100,100));//半径100ピクセルの円をjava.awtで描いて、それをボタンに埋め込みたい  ↑ このコードはエラーになるんです。悲しいです。何とかして、エラーを回避して、maruボタンにfillOval(100,100,100,100)を埋め込みたいです。 ボタンに埋め込む図がベクター図なら、java.awt.Graphics以外の方法でも良いです。だけど、JavaのJButtonを使いますし、javaでベクトルグラフィックスの絵を描くとなるとjava.awt.Graphicsを使うでしょうし、 maru.setIcon(java.awt.Graphics g.fillOval(100,100,100,100));みたいなプログラムが自然かなって思いました。 ***** (以下参考)試しにちょっと作ってみました。 class VectorButtonShitsumon extends java.awt.Frame{ public VectorButtonShitsumon(){setSize(500,500);setVisible(true);} public void paint(java.awt.Graphics g){g.fillOval(100,100,100,100);} public static void main(String[] args){ javax.swing.JFrame fr=new javax.swing.JFrame(); fr.setBounds(200,200,200,200); javax.swing.JButton maru=new javax.swing.JButton(); //maru.setIcon(java.awt.Graphics g.fillOval(100,100,100,100));//←エラーコード maru.setText("●");//setTextは嫌! fr.getContentPane().add(maru,java.awt.BorderLayout.CENTER); new VectorButtonShitsumon(); fr.setVisible(true); }//end main }//end class VectorButtonShitsumon ここまで コメントを外したときのエラーメッセージ Exception in thread "main" java.lang.Error: Unresolved compilation problems: 型 AbstractButton のメソッド setIcon(Icon) は引数 (void) に適用できません 型 Graphics の非 static メソッド fillOval(int, int, int, int) を static 参照することはできません トークン "g" に構文エラーがあります。このトークンを削除してください

    • ベストアンサー
    • Java
  • Javaの課題を手伝ってください

    Javaの課題があります。 ある程度独力で取り組んでいたのですが、 どうにも解決できない部分があり、手伝って欲しいです。 課題は以下の通りです。 起動パラメータとしてxy座標が列挙されたcsvファイルのファイルパス、x幅a(a>=100)、y幅b(b>=100)、y軸論理下限値c(b>c>=0)、y軸論理上限値d(b>=d>=c)(いずれもpixel)を受け取る x幅、y幅よりJTextPaneを作成する csvを読み、以下の規則に則りJTextPaneに対して連続する座標間に直線を描画する ・JTextPaneの背景の色はR=0xFF、G=0xFF、B=0xFF、A=0xFFとする ・y軸論理下限値より低い位置の直線の色はR=0xFF、G=0x0、B=0x0、A=0xFFとする ・y軸論理上限値より高い位置の直線の色はR=0xFF、G=0x0、B=0x0、A=0xFFとする ・それ以外の場合、色はR=0x0、G=0x0、B=0x0、A=0xFFとする ※Aは不透明度 ・起動パラメータは不定とする ・上記規則に則っている限り、詳細な実装方法は問わない 上記の課題の中ですでに出来ている事 ・起動パラメータの取得 ・起動パラメータからJTextPaneを作成 ・csvファイルの読み込み ・Graphicsオブジェクトを使ってJTextPaneに対して単純に座標間を繋ぐ線を引く まだ出来ていない事 ・y軸論理下限値、y軸論理上限値を見て線の色を変更する y座標開始終了位置が共に上限値・下限値より高い・低い場合に関しては、問題無いと思います。 問題は線が上限値・下限値をまたぐ場合です。 これに関して、解決の方法を二通り考えています。 1.連続した点を描画して擬似的な直線を表現する。判定は楽になる。 2.始点座標、終点座標、上限値、下限値から交点座標を取り、始点座標-交点座標までの線と交点座標-終点座標までの線を別の色で描画。 試した結果 1.drawLineが頂点を整数で取るため、鋭角・鈍角な線の場合に綺麗に線が引けずガタガタする。判定が楽でもこれでは本末転倒。綺麗に引く為にはより複雑な計算が要求される。 2.交点の取り方がいまいちわかりませんが、交点は端数処理をどうするかを一旦おいておけば、ココと決めた場所を線で繋げばいいだけなので、こちらの方が現実的。(先送りにした問題はどうにかがんばってみます) 長々と書いてしまいましたが、今回質問したい事は2のやり方に基づいた交点の取り方です。 図で示した中の交点xを取得する為の演算方法をお教えいただきたいです。この時点では実数の解で構いません。 (出来れば、1行1演算でJavaのソースで例示していただけると、非常に助かります) プログラミング自体は好きですが、算数はどうにも苦手です。 どうか宜しくお願いします。

    • ベストアンサー
    • Java
  • java enum

    エラー内容 int cannot be dereferenced 何が原因でエラーになっているのですか? import java.util.*; enum light{ red,yellow,blue } class m1{ public static void main(String[] args){ int light; Scanner ss = new Scanner(System.in); System.out.println("整数値を入力 : "); int i = ss.nextInt(); if(i == light.red.ordinal()){ System.out.println("信号は赤色です"); } else if(i == light.yellow.ordinal()){ System.out.println("信号は黄色です"); } else if(i == light.blue.ordinal()){ System.out.println("信号は青色です"); } } }