Javaに関する様々な情報をご紹介します。

Javaに関する様々な情報をご紹介します。
評価

0

jfreechartで2つのグラフの縦軸を別々に出したい。

よろしくお願いします。

jfreechartで、今左右に並べて2つのグラフを
表示していますが、縦軸が左のグラフにしか
出せず、2つのグラフ共通になってしまいます。

右のグラフの左にも縦軸を出したいのですが、
分かる方がいたらよろしくお願いします。

今、1つのエリアに2つ表示しているからこう
なってしまっているのであれば、別々のエリアに
表示でも良いです。



//*********************************************************************
//    出来高額と包括請求額のグラフ
//*********************************************************************

//レガシーテーマを設定する  
ChartFactory.setChartTheme(StandardChartTheme.createLegacyTheme());  

//棒グラフのデータを設定する  
DefaultCategoryDataset barDataset = new DefaultCategoryDataset();  

//全体  
barDataset.addValue(785020676, "包括請求額", "包括請求額");  
barDataset.addValue(802357836, "出来高請求額", "出来高請求額");     

//棒グラフを生成する  
JFreeChart chart = ChartFactory.createBarChart3D( "診療科別統計", "", "金額", barDataset, PlotOrientation.VERTICAL, true, false, false); 

CategoryPlot plot = chart.getCategoryPlot(); 

plot.setForegroundAlpha(1f);    //グラフの透明度


//*********************************************************************
//    出来高額と包括請求額のグラフ
//*********************************************************************

//レガシーテーマを設定する  
ChartFactory.setChartTheme(StandardChartTheme.createLegacyTheme());  

//棒グラフのデータを設定する  
DefaultCategoryDataset barDataset2 = new DefaultCategoryDataset();  


barDataset2.addValue(201200328, "包括請求額", "内科");  
barDataset2.addValue(201068358, "出来高請求額", "内科");    

barDataset2.addValue(186544386, "包括請求額", "泌尿器科");  
barDataset2.addValue(198100016, "出来高請求額", "泌尿器科");   

barDataset2.addValue(114323858, "包括請求額", "産婦人科");  
barDataset2.addValue(81028112, "出来高請求額", "産婦人科");  

barDataset2.addValue(70376596, "包括請求額", "眼科");  
barDataset2.addValue(69885766, "出来高請求額", "眼科");   

barDataset2.addValue(59196622, "包括請求額", "小児科");  
barDataset2.addValue(60967562, "出来高請求額", "小児科");   

barDataset2.addValue(46787514, "包括請求額", "外科");  
barDataset2.addValue(43336804, "出来高請求額", "外科");    

//棒グラフを生成する  
JFreeChart chart2 = ChartFactory.createBarChart3D( "診療科別統計", "診療科", "金額", barDataset2, PlotOrientation.VERTICAL, true, false, false); 


CategoryPlot plot2 = chart2.getCategoryPlot(); 

plot2.setForegroundAlpha(1f);    //グラフの透明度

//追加する折れ線グラフの軸を設定する  
ValueAxis axis2 = new NumberAxis("金額");  
plot2.setRangeAxis(1, axis2); 




//*********************************************************************
//    2つのグラフを合わせる
//*********************************************************************

NumberAxis  rangeAxis  = new NumberAxis ("金額");
CombinedRangeCategoryPlot plot3 = new CombinedRangeCategoryPlot(rangeAxis);

//各グラフの描画グラフ率を設定
plot3.add(plot, 1);
plot3.add(plot2, 5);    //比率数、後からこちらは科の数にする。

JFreeChart chart3 = new JFreeChart("診療科別統計", new Font("SansSerif", Font.BOLD, 12), plot3, true);

 
//レスポンスに出力
aResponse.setContentType("image/png"); 
ServletOutputStream sos2 = aResponse.getOutputStream();

ChartUtilities.writeChartAsPNG(sos2, chart3, 700, 400);  

6

回答

83711

閲覧

6件の回答

評価

0

https://www.google.co.jp/#hl=ja&sclient=psy-
ab&q=JFreeChart%E8%A4%87%E5%90%88%E3%82%B0%E3%83%A9%E3%83%95%E8%A1%A8%
E7%A4%BA%E3%81%AB%E3%81%A4%E3%81%84%E3%81%A6+-
%E3%82%B0%E3%82%B0%E3%83%AC%E3%82%AB%E3%82%B9+&oq=JFreeChart%E8%A4%87%
E5%90%88%E3%82%B0%E3%83%A9%E3%83%95%E8%A1%A8%E7%A4%BA%E3%81%AB%E3%81%A
4%E3%81%84%E3%81%A6+-
%E3%82%B0%E3%82%B0%E3%83%AC%E3%82%AB%E3%82%B9+&aq=f&aqi=&aql=&gs_l=hp.
3...25675l25675l2l25958l1l1l0l0l0l0l65l65l1l1l0.frgbld.&pbx=1&bav=on.2
,or.r_gc.r_pw.r_qf.,cf.osb&fp=e172e31306af1470&biw=1046&bih=649

評価

0

すみません。
リンクを貼り付けてくれた方がいるのですが、
このページには飛べないのですが…。

評価

0

上記の匿名さんとは別の者です。
そのままアドレスバーにコピペすればいいはずですよ。
こちらではちゃんと検索結果が表示されます。

評価

0

ブラウザによってはうまく開けないのかな。
うちのChromeでも開けなかったけど、
q=の部分がクエリーだから、デコードしてみたら

JFreeChart複合グラフ表示について -ググレカス

で検索したらしい。

評価

0

もちろんサイトで色々調べましたが、
今回私がやりたい方法は見つけられ
なかったので質問させていただきました。

条件としては、2つとも棒グラフで2つとも左側に
縦軸を別々に表示したいです。

棒グラフ2つで左と右に縦軸というものは
探せましたが、今回やりたいのはそうではありません。

また、別々のエリアでの棒グラフ表示なので
複合フラフでもありません。

よろしくお願いします。

評価

0

全く別々にグラフ作って、並べるだけじゃ駄目なの?
1ファイルじゃなきゃヤダってんなら、作った画像を左右結合したら?

質問から6ヶ月以上経過しているので、回答を書き込むことはできません。