自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

JFreeChart最佳實(shí)踐:刻度蜘蛛環(huán)圖

開發(fā) 后端
本文將介紹作者通過Java最佳圖形解決方案JFreeChart實(shí)現(xiàn)刻度蜘蛛環(huán)圖的詳細(xì)過程。

JFreeChart主要用來各種各樣的圖表,這些圖表包括:餅圖、柱狀圖(普通柱狀圖以及堆棧柱狀圖)、線圖、區(qū)域圖、分布圖、混合圖、甘特圖以及一些儀表盤等等。當(dāng)前JFreeChart最新版本是1.0.13,下面demo和刻度蜘蛛環(huán)圖都基于此版本。

對(duì)于刻度蜘蛛環(huán)圖,效果如下圖,網(wǎng)上有一些例子,但是只有刻度,同時(shí)不能指定刻度最大值。最后沒辦法,只好自己改一個(gè)。

改的時(shí)候,決定新建一個(gè)chart類,通過繼承JFreechart自帶例子中的SpiderWebPlot類來實(shí)現(xiàn),SpiderWebPlot類的demo效果見下圖。

這個(gè)demo沒有刻度,沒有圓環(huán)。

整理一下所有要做的事情:

1.加入刻度,可自定義刻度數(shù)以及刻度的最大值,同時(shí)刻度值前后可以是加入單位符號(hào),如百分號(hào)、美元符號(hào)、人民幣符號(hào)等;

2.加入圓環(huán),圓環(huán)的半徑與刻度一一對(duì)應(yīng),有幾個(gè)刻度,就有幾個(gè)圓環(huán)

畫刻度的代碼直接參考了網(wǎng)上的例子,自己增加了刻度數(shù)、刻度最大值、單位符號(hào)的功能;然后畫圓環(huán)的代碼參考自一個(gè)demo,見下圖,然后修改了相應(yīng)的算法,確保與刻度對(duì)應(yīng),搞定。

在修改的過程中,還碰到了中文亂碼問題。對(duì)與JFreechart中文亂碼問題,網(wǎng)上搜素答案也是一大把,但都不能解決。最后還是跟蹤了一下源代碼,發(fā)現(xiàn)在創(chuàng)建JFreeChart對(duì)象的時(shí)候,默認(rèn)應(yīng)用了JFreechart提供的標(biāo)準(zhǔn)主題,其標(biāo)準(zhǔn)主題提供的文字是Tahoma,這個(gè)字體不支持中文,最后一次性的將其改為“宋體”解決了(如果不想修改JFreechart的代碼,可能就需要在每個(gè)地方去單獨(dú)設(shè)置這些參數(shù)了)。在JFreechart中,調(diào)用這個(gè)標(biāo)準(zhǔn)主題的代碼都是在創(chuàng)建jfreechart對(duì)象的代碼中,如demo代碼中的createChart方法的ChartUtilities.applyCurrentTheme(jfreechart);語句,以及工廠類ChartFactory的createPolarChart方法中currentTheme.apply(chart);語句。

  1. /**  
  2.  * Creates a new default instance.  
  3.  *  
  4.  * @param name  the name of the theme (<code>null</code> not permitted).  
  5.  */ 
  6. public StandardChartTheme(String name) {  
  7.     if (name == null) {  
  8.         throw new IllegalArgumentException("Null 'name' argument.");  
  9.     }  
  10.     this.name = name;  
  11.     /將四個(gè)Tahoma改成系統(tǒng)支持的中文字體即可,如宋體  
  12.     this.extraLargeFont = new Font("Tahoma", Font.BOLD, 20);/  
  13.     this.largeFont = new Font("Tahoma", Font.BOLD, 14);  
  14.     this.regularFont = new Font("Tahoma", Font.PLAIN, 12);  
  15.     this.smallFont = new Font("Tahoma", Font.PLAIN, 10);  
  16.     this.titlePaint = Color.black;  
  17.     ......  

總結(jié)一下,由于自己對(duì)JAVA畫圖繪圖的API一竅不通,所以才用了這樣的思路去改;在改的過程中,發(fā)現(xiàn)都是通過修改繪圖的方法實(shí)現(xiàn)這些功能的,如果自己熟悉JAVA畫圖繪圖的API,其實(shí),拿到第一個(gè)demo的時(shí)候基本上就可以直接改了。

進(jìn)入原文下載刻度蜘蛛環(huán)圖和demo的源碼。

原文鏈接:http://easycode.iteye.com/blog/1172486

【編輯推薦】

  1. JFreeChart最佳實(shí)踐:儀表盤
  2. JFreeChart最佳實(shí)踐:甘特圖
  3. JFreeChart最佳實(shí)踐:時(shí)序圖
  4. JFreeChart最佳實(shí)踐:散點(diǎn)圖
  5. JFreeChart最佳實(shí)踐:折線圖
責(zé)任編輯:林師授 來源: lhx222的博客
相關(guān)推薦

2011-12-21 13:44:33

JavaJFreeChart

2011-12-21 12:58:41

JavaJFreeChart

2011-12-21 13:35:39

JavaJFreeChart

2011-12-21 13:52:27

JavaJFreeChart

2011-12-21 12:46:43

2011-12-21 14:15:08

JavaJFreeChart

2011-12-21 13:25:33

JavaJFreeChart

2023-05-19 08:00:00

ReactJSJavaScript蜘蛛圖

2011-12-20 12:53:43

JavaJFreeChart

2023-07-21 01:12:30

Reactfalse?變量

2011-08-18 11:05:21

jQuery

2024-08-21 08:02:47

2012-08-09 09:10:56

代碼審查代碼

2014-06-09 15:50:08

2014-08-19 10:06:53

IAP

2015-09-23 09:08:38

java反射

2023-09-11 08:50:03

Maven工具關(guān)系管理

2023-09-13 08:00:00

JavaScript循環(huán)語句
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)