JFreeChart自我总结
想飞就别怕摔
大爷的并TM骂人
JFreeChart自我总结
1、饼图、柱状图、折线图生成的工具类
2
3 import java.awt.BasicStroke;
4 import java.awt.Color;
5 import java.awt.Font;
6 import java.awt.GradientPaint;
7 import java.io.IOException;
8 import java.text.DecimalFormat;
9 import java.text.NumberFormat;
10 import java.text.SimpleDateFormat;
11
12 import javax.servlet.http.HttpServletRequest;
13 import javax.servlet.http.HttpSession;
14
15 import org.jfree.chart.ChartFactory;
16 import org.jfree.chart.JFreeChart;
17 import org.jfree.chart.axis.CategoryAxis;
18 import org.jfree.chart.axis.DateAxis;
19 import org.jfree.chart.axis.ValueAxis;
20 import org.jfree.chart.labels.ItemLabelAnchor;
21 import org.jfree.chart.labels.ItemLabelPosition;
22 import org.jfree.chart.labels.StandardCategoryItemLabelGenerator;
23 import org.jfree.chart.labels.StandardPieSectionLabelGenerator;
24 import org.jfree.chart.labels.StandardPieToolTipGenerator;
25 import org.jfree.chart.labels.StandardXYItemLabelGenerator;
26 import org.jfree.chart.labels.StandardXYToolTipGenerator;
27 import org.jfree.chart.plot.CategoryPlot;
28 import org.jfree.chart.plot.IntervalMarker;
29 import org.jfree.chart.plot.PiePlot;
30 import org.jfree.chart.plot.PlotOrientation;
31 import org.jfree.chart.plot.XYPlot;
32 import org.jfree.chart.renderer.category.BarRenderer;
33 import org.jfree.chart.renderer.category.BarRenderer3D;
34 import org.jfree.chart.renderer.xy.XYLineAndShapeRenderer;
35 import org.jfree.chart.servlet.ServletUtilities;
36 import org.jfree.chart.title.LegendTitle;
37 import org.jfree.chart.title.TextTitle;
38 import org.jfree.data.category.CategoryDataset;
39 import org.jfree.data.general.DefaultPieDataset;
40 import org.jfree.data.time.TimeSeriesCollection;
41 import org.jfree.ui.Layer;
42 import org.jfree.ui.TextAnchor;
43 import org.jfree.util.Rotation;
44
45 /**
46 *<br> 文 件 名:JFreeChartServlet.java
47 *<br> 包 名:com.report.servlet
48 *<br> 创 建 人:
49 *<br> 创建日期: Mar 30, 2010 1:00:23 PM
50 *<br> 描 述:生成jFreeChart
51 */
52 public class JFreeChartCreater {
53
54 /**
55 *<br> 方法名称:createPieChart
56 *<br> 功能描述:创建PieChart(饼图)图表
57 *<br> 返 回 值:JFreeChart
58 *<br> 创 建 人:
59 *<br> 创建日期:Mar 30, 2010 12:59:07 PM
60 *@param dataset
61 */
62 public static JFreeChart createPieChart(DefaultPieDataset dataset,
63 String title,boolean is3D) {
64 JFreeChart chart=null;
65 if(is3D){
66 chart=ChartFactory.createPieChart3D(
67 title, // 图表标题
68 dataset, // 数据集
69 true, // 是否显示图例
70 true, // 是否显示工具提示
71 true // 是否生成URL
72 );
73 }
74 else{ chart = ChartFactory.createPieChart(
75 title, // 图表标题
76 dataset, // 数据集
77 true, // 是否显示图例
78 true, // 是否显示工具提示
79 true // 是否生成URL
80 );
81 }
82 // 设置标题字体,为了防止中文乱码:必须设置字体
83 chart.setTitle(new TextTitle(title, new Font("黑体", Font.ITALIC, 22)));
84 // 设置图例的字体,为了防止中文乱码:必须设置字体
85 chart.getLegend().setItemFont(new Font("黑体", Font.BOLD, 12));
86 // 获取饼图的Plot对象(实际图表)
87 PiePlot plot = (PiePlot) chart.getPlot();
88 // 图形边框颜色
89 plot.setBaseSectionOutlinePaint(Color.GRAY);
90 // 图形边框粗细
91 plot.setBaseSectionOutlineStroke(new BasicStroke(0.0f));
92 // 设置饼状图的绘制方向,可以按顺时针方向绘制,也可以按逆时针方向绘制
93 plot.setDirection(Rotation.ANTICLOCKWISE);
94 // 设置绘制角度(图形旋转角度)
95 plot.setStartAngle(70);
96 // 设置突出显示的数据块
97 // plot.setExplodePercent("One", 0.1D);
98 // 设置背景色透明度
99 plot.setBackgroundAlpha(0.7F);
100 // 设置前景色透明度
101 plot.setForegroundAlpha(0.65F);
102 // 设置区块标签的字体==为了防止中文乱码:必须设置字体
103 plot.setLabelFont(new Font("宋体", Font.PLAIN, 12));
104 // 扇区分离显示,对3D图不起效
105 if(is3D)
106 plot.setExplodePercent(dataset.getKey(3), 0.1D);
107 // 图例显示百分比:自定义方式,{0} 表示选项, {1} 表示数值, {2} 表示所占比例 ,小数点后两位
108 plot.setLabelGenerator(new StandardPieSectionLabelGenerator(
109 "{0}:{1}\r\n({2})", NumberFormat.getNumberInstance(),
110 new DecimalFormat("0.00%")));
111 // 指定显示的饼图为:圆形(true) 还是椭圆形(false)
112 plot.setCircular(true);
113 // 没有数据的时候显示的内容
114 plot.setNoDataMessage("找不到可用数据");
115
116 // 设置鼠标悬停提示
117 plot.setToolTipGenerator(new StandardPieToolTipGenerator());
118 // 设置热点链接
119 // plot.setURLGenerator(new StandardPieURLGenerator("detail.jsp"));
120
121 return chart;
122 }
123 /**
124 *<br> 方法名称:createPieChart
125 *<br> 功能描述:创建BarChart(柱状图/条形图)图表
126 *<br> 返 回 值:JFreeChart
127 *<br> 创 建 人:
128 *<br> 创建日期:Mar 30, 2010 12:59:07 PM
129 *@param dataset
130 */
131 @SuppressWarnings("deprecation")
132 public static JFreeChart createBarChart(CategoryDataset dataset,
133 String title, String x, String y,boolean is3D) {
134 JFreeChart chart =null;
135 BarRenderer renderer = null;
136 if(is3D){
137 chart = ChartFactory.createBarChart3D( // 3D柱状图
138 // JFreeChart chart = ChartFactory.createLineChart3D( //3D折线图
139 title, // 图表的标题
140 x, // 目录轴的显示标签
141 y, // 数值轴的显示标签
142 dataset, // 数据集
143 PlotOrientation.VERTICAL, // 图表方式:V垂直;H水平
144 true, // 是否显示图例
145 false, // 是否显示工具提示
146 false // 是否生成URL
147 );
148 // 柱图的呈现器
149 renderer = new BarRenderer3D();
150 renderer.setItemLabelGenerator(new StandardCategoryItemLabelGenerator());
151 renderer.setItemLabelFont(new Font("黑体",Font.PLAIN,12));
152 renderer.setItemLabelsVisible(true);
153 //3D柱子上不能正常显示数字
154 //注意:如果数值太大切前面的柱子低于后面的柱子,那么前面的那个数值将被挡住,所以将下面方法中的0该为-值
155 ItemLabelPosition itemLabelPositionFallback = new ItemLabelPosition(
156 ItemLabelAnchor.OUTSIDE12,TextAnchor.BASELINE_LEFT,
157 TextAnchor.HALF_ASCENT_LEFT,-1.3D);
158 //设置不能正常显示的柱子label的position
159 renderer.setPositiveItemLabelPositionFallback(itemLabelPositionFallback);
160 renderer.setNegativeItemLabelPositionFallback(itemLabelPositionFallback);
161 }else{
162 chart = ChartFactory.createBarChart( // 柱状图
163 // JFreeChart chart = ChartFactory.createLineChart3D( //3D折线图
164 title, // 图表的标题
165 x, // 目录轴的显示标签
166 y, // 数值轴的显示标签
167 dataset, // 数据集
168 PlotOrientation.VERTICAL, // 图表方式:V垂直;H水平
169 true, // 是否显示图例
170 false, // 是否显示工具提示
171 false // 是否生成URL
172 );
173 // 柱图的呈现器
174 renderer = new BarRenderer();
175 renderer.setIncludeBaseInRange(true); // 显示每个柱的数值,并修改该数值的字体属性
176 renderer.setBaseItemLabelGenerator(new StandardCategoryItemLabelGenerator());
177 renderer.setBaseItemLabelsVisible(true);
178 }
179
180 //设置图片背景
181 // chart.setBackgroundPaint(Color.PINK);
182 // 为了防止中文乱码:必须设置字体
183 chart.setTitle(new TextTitle(title, new Font("黑体", Font.PLAIN, 22)));
184 LegendTitle legend = chart.getLegend(); // 获取图例
185 legend.setItemFont(new Font("宋体", Font.BOLD, 12)); // 设置图例的字体,防止中文乱码
186 CategoryPlot plot = (CategoryPlot) chart.getPlot(); // 获取柱图的Plot对象(实际图表)
187 // 设置柱图背景色(注意,系统取色的时候要使用16位的模式来查看颜色编码,这样比较准确)
188 plot.setBackgroundPaint(new Color(255, 255, 204));
189 plot.setForegroundAlpha(0.65F); // 设置前景色透明度
190 // 设置横虚线可见
191 plot.setRangeGridlinesVisible(true);
192 // 虚线色彩
193 plot.setRangeGridlinePaint(Color.gray);
194
195 ValueAxis rangeAxis = plot.getRangeAxis();
196 //设置最高的一个Item与图片顶端的距离
197 rangeAxis.setUpperMargin(0.2);
198 //设置最低的一个Item与图片底端的距离
199 rangeAxis.setLowerMargin(0.3);
200
201 CategoryAxis domainAxis = plot.getDomainAxis(); // 获取x轴
202 domainAxis.setMaximumCategoryLabelWidthRatio(1.0f);// 横轴上的 Lable 是否完整显示
203 domainAxis.setLabelFont(new Font("宋体", Font.TRUETYPE_FONT, 14));// 设置字体,防止中文乱码
204 domainAxis.setTickLabelFont(new Font("宋体", Font.BOLD, 12));// 轴数值
205 // h.setCategoryLabelPositions(CategoryLabelPositions.UP_45);//45度倾斜
206 plot.getRangeAxis().setLabelFont(new Font("宋体", Font.TRUETYPE_FONT, 14)); // Y轴设置字体,防止中文乱码
207
208 renderer.setBaseOutlinePaint(Color.BLACK); // 设置柱子边框颜色
209 renderer.setDrawBarOutline(true); // 设置柱子边框可见
210 renderer.setSeriesPaint(0, Color.YELLOW); // 设置每个柱的颜色
211 renderer.setSeriesPaint(1, Color.green);
212 renderer.setSeriesPaint(2, Color.RED);
213 renderer.setSeriesPaint(3, Color.CYAN);
214 renderer.setSeriesPaint(5, Color.ORANGE);
215 renderer.setSeriesPaint(4, Color.MAGENTA);
216 renderer.setSeriesPaint(6, Color.DARK_GRAY);
217 renderer.setSeriesPaint(7, Color.PINK);
218 renderer.setSeriesPaint(8, Color.black);
219 renderer.setItemMargin(0.1); // 设置每个地区所包含的平行柱的之间距离
220 plot.setRenderer(renderer); // 给柱图添加呈现器
221 plot.setForegroundAlpha(0.7f); // 设置柱的透明度
222 // renderer.setMaximumBarWidth(0.2); // 设置柱子宽度
223 // renderer.setMinimumBarLength(0.6); // 设置柱子高度
224 //设置横坐标显示位置(默认是下方);
225 // plot.setDomainAxisLocation(AxisLocation.TOP_OR_RIGHT);
226 //设置纵坐标显示位置(默认是左方)
227 // plot.setRangeAxisLocation(AxisLocation.BOTTOM_OR_RIGHT);
228 // 没有数据的时候显示的内容
229 plot.setNoDataMessage("找不到可用数据");
230
231 return chart;
232 }
233
234 /**
235 *<br> 方法名称:JFreeChartSeriesChart
236 *<br> 功能描述:创建曲线图(折线图)
237 *<br> 注意事项:一般曲线图不用加域所以后4个参数一般为(false,null,0,0)
238 *<br> 参 数:title-标题;subtitleStr-子标题;domain-x轴标志;range-y轴标志;dataset-设置数据;isAreaText-是否在图标中加域;
239 *<br> areaText-域中文字,lowpress-域的最低刻度;uperpress-域的最高刻度
240 *<br> 返 回 值:JFreeChart
241 *<br> 创 建 人:
242 *<br> 创建日期:Mar 30, 2010 1:11:24 PM
243 */
244 @SuppressWarnings("deprecation")
245 public static JFreeChart JFreeChartSeriesChart(String title,
246 String subtitleStr, String domain, String range,
247 TimeSeriesCollection dataset,boolean isAreaText,String areaText,double lowpress,double uperpress) { //时间曲线元素
248 // JFreeChart chart = ChartFactory.createTimeSeriesChart("标题","x轴标志","y轴标志","设置数据",是否显示图形,是否进行提示,是否配置报表存放地址);
249 JFreeChart chart = ChartFactory.createTimeSeriesChart(title, domain,range, dataset, true, true, false);
250
251 if(subtitleStr!=null){
252 TextTitle subtitle = new TextTitle(subtitleStr, new Font("黑体",Font.BOLD, 12));
253 chart.addSubtitle(subtitle);
254 }
255 // 设置日期显示格式
256 XYPlot plot = chart.getXYPlot();
257 DateAxis axis = (DateAxis) plot.getDomainAxis();
258 axis.setDateFormatOverride(new SimpleDateFormat("yyyy-MM-dd"));
259 // 设置标题的颜色
260 chart.setTitle(new TextTitle(title, new Font("黑体", Font.ITALIC, 22)));
261 chart.setBackgroundPaint(new GradientPaint(0, 0, Color.white, 0, 1000, Color.blue));
262 plot.setOutlineStroke(new BasicStroke(1.5f)); // 边框粗细
263 ValueAxis vaxis = plot.getDomainAxis();
264 vaxis.setAxisLineStroke(new BasicStroke(1.5f)); // 坐标轴粗细
265 vaxis.setAxisLinePaint(new Color(215, 215, 215)); // 坐标轴颜色
266 vaxis.setLabelPaint(new Color(10, 10, 10)); // 坐标轴标题颜色
267 vaxis.setTickLabelPaint(new Color(102, 102, 102)); // 坐标轴标尺值颜色
268 vaxis.setLowerMargin(0.06d);// 分类轴下(左)边距
269 vaxis.setUpperMargin(0.14d);// 分类轴下(右)边距,防止最后边的一个数据靠近了坐标轴。
270 plot.setNoDataMessage("找不到可用数据");//没有数据时显示的文字说明。
271 XYLineAndShapeRenderer xylineandshaperenderer = (XYLineAndShapeRenderer)plot.getRenderer();
272 //第一条折线的颜色
273 xylineandshaperenderer.setBaseItemLabelsVisible(true);
274 xylineandshaperenderer.setSeriesFillPaint(0, new Color(127, 128, 0));
275 xylineandshaperenderer.setSeriesPaint(0, new Color(127, 128, 0));
276 xylineandshaperenderer.setSeriesShapesVisible(0, true);
277 xylineandshaperenderer.setSeriesShapesVisible(1, true);
278 xylineandshaperenderer.setSeriesShapesVisible(2, true);
279 xylineandshaperenderer.setSeriesShapesVisible(3, true);
280 xylineandshaperenderer.setSeriesShapesVisible(4, true);
281 //折线的粗细调
282 StandardXYToolTipGenerator xytool = new StandardXYToolTipGenerator();
283 xylineandshaperenderer.setToolTipGenerator(xytool);
284 xylineandshaperenderer.setStroke(new BasicStroke(1.5f));
285 // 显示节点的值
286 xylineandshaperenderer.setBaseItemLabelsVisible(true);
287 xylineandshaperenderer.setBasePositiveItemLabelPosition(new ItemLabelPosition(
288 ItemLabelAnchor.OUTSIDE12, TextAnchor.BASELINE_CENTER));
289 xylineandshaperenderer.setBaseItemLabelGenerator(new StandardXYItemLabelGenerator());
290 xylineandshaperenderer.setBaseItemLabelPaint(new Color(102, 102, 102));// 显示折点数值字体的颜色
291
292 ValueAxis rangeAxis = plot.getRangeAxis();
293 //设置最高的一个Item与图片顶端的距离
294 rangeAxis.setUpperMargin(0.2);
295 //设置最低的一个Item与图片底端的距离
296 rangeAxis.setLowerMargin(0.3);
297 //在图表中加区域加区域
298 if(isAreaText){
299 lowpress = 62;
300 uperpress = 400;
301 IntervalMarker intermarker = new IntervalMarker(lowpress, uperpress);
302 intermarker.setPaint(Color.decode("#66FFCC"));// 域顏色
303 intermarker.setLabelFont(new Font("SansSerif", 41, 14));
304 intermarker.setLabelPaint(Color.RED);
305 intermarker.setLabel(areaText);
306 if (dataset != null) {
307 plot.addRangeMarker(intermarker, Layer.BACKGROUND);
308 }
309 }
310 return chart;
311 }
312
313
314 /**
315 *<br> 方法名称:getGraphURL
316 *<br> 功能描述:取得session中图像的地址;
317 *<br> 返 回 值:String
318 *<br> 创 建 人:
319 *<br> 创建日期:Mar 30, 2010 1:09:51 PM
320 */
321 public static String getGraphURL(JFreeChart chart, HttpSession session,
322 HttpServletRequest request, int width, int height)throws IOException {
323 String filename = ServletUtilities.saveChartAsPNG(chart, width, height,null, session);
324 String graphURL = request.getContextPath()+ "/servlet/DisplayChart?filename=" + filename;
325 return graphURL;
326 }
327
328 }
329
330
2、模拟数据
2 DefaultCategoryDataset dataset = new DefaultCategoryDataset();
3 dataset.setValue(5003, "北京", "Corejava");
4 dataset.setValue(3333, "上海", "Corejava");
5 dataset.setValue(5343, "广州", "Corejava");
6 dataset.setValue(2000, "贵州", "Corejava");
7
8 dataset.setValue(1000, "北京", "JavaWeb");
9 dataset.setValue(6300, "上海", "JavaWeb");
10 dataset.setValue(4000, "广州", "JavaWeb");
11
12 dataset.setValue(2000, "北京", "jquery");
13 dataset.setValue(1000, "上海", "jquery");
14 dataset.setValue(1000, "广州", "jquery");
15 JFreeChart jfreechart = JFreeChartCreater.createBarChart(dataset, "课件使用情况条形图", "课件制作者", "可见使用次数", true);
16
17 //折线图
18 // 创建第一条时序线
19 TimeSeries pop1 = new TimeSeries("流行趋势1", Day.class);
20 pop1.add(new Day(10, 1, 2004), 100);
21 pop1.add(new Day(10, 2, 2004), 150);
22 pop1.add(new Day(10, 3, 2004), 250);
23 pop1.add(new Day(10, 4, 2004), 275);
24 pop1.add(new Day(10, 5, 2004), 325);
25 pop1.add(new Day(10, 6, 2004), 425);
26 // 创建第二条时序线
27 TimeSeries pop2 = new TimeSeries("流行趋势2", Day.class);
28 pop2.add(new Day(20, 1, 2004), 200);
29 pop2.add(new Day(20, 2, 2004), 250);
30 pop2.add(new Day(20, 3, 2004), 450);
31 pop2.add(new Day(20, 4, 2004), 475);
32 pop2.add(new Day(20, 5, 2004), 125);
33 pop2.add(new Day(20, 6, 2004), 150);
34 JFreeChart jfreechart = JFreeChartCreater.JFreeChartSeriesChart("课件使用情况条形图", null, "X轴", "Y轴", dataset,false,null,0,0);
35
36 //饼图
37 DefaultPieDataset dataset = new DefaultPieDataset();
38
39 dataset.setValue("java程序设计语言", 10000);
40 dataset.setValue("JSP基础与案例开发详解", 20000);
41 dataset.setValue("struts基础与案例开发详解", 30000);
42 dataset.setValue("精通JSF", 4000);
43 JFreeChart jfreechart = JFreeChartCreater.createPieChart(dataset,
44 "课件使用情况条形图", false);
45
46 request.setAttribute("jfreechart", jfreechart);
3、jsp页面
2 <%@ include file="/includes/taglibs.jsp"%>
3 <jsp:directive.page import="org.jfree.chart.*"/>
4 <jsp:directive.page import="org.jfree.chart.entity.*"/>
5 <jsp:directive.page import="org.jfree.chart.servlet.ServletUtilities"/>
6 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
7 <html xmlns="http://www.w3.org/1999/xhtml">
8 <head>
9 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
10 <title>课件使用情况柱状图</title>
11 </head>
12 <body>
13 <%
14 JFreeChart jfreechart = (JFreeChart) request.getAttribute("jfreechart");
15 StandardEntityCollection sec = new StandardEntityCollection();
16 ChartRenderingInfo info = new ChartRenderingInfo(sec);
17 String filename = ServletUtilities.saveChartAsJPEG(jfreechart, 500,300, info, session);
18 String graphURL = request.getContextPath()+ "/servlet/DisplayChart?filename=" + filename;
19 %>
20
21 <P ALIGN="CENTER">
22 <img src="<%=graphURL%>" width=500 height=300 border=0 usemap="#map0">
23 </P>
24 <p ALIGN="CENTER">
25 <input type="button" value="关闭" onclick="JavaScript:window.close()"/>
26 </p>
27 </body>
28 </html>
29
posted on 2010-03-31 11:31 生命的绽放 阅读(1210) 评论(0) 编辑 收藏 所属分类: JAVA
JFreeChart自我总结的更多相关文章
- 拨开迷雾,找回自我:DDD 应对具体业务场景,Domain Model 到底如何设计?
写在前面 除了博文内容之外,和 netfocus 兄的讨论,也可以让你学到很多(至少我是这样),不要错过哦. 阅读目录: 迷雾森林 找回自我 开源地址 后记 毫无疑问,领域驱动设计的核心是领域模型,领 ...
- 《web全栈工程师的自我修养》读书笔记
有幸读了yuguo<web全栈工程师的自我修养>,颇有收获,故在此对读到的内容加以整理,方便指导,同时再回顾一遍书中的内容. 概览 整本书叙述的是作者的成长经历,通过经验的分享,给新人或者 ...
- 【Java EE 学习 74 下】【数据采集系统第六天】【使用Jfreechart的统计图实现】【将JFreechart整合到项目中】
之前说了JFreechart的基本使用方法,包括生成饼图.柱状统计图和折线统计图的方法.现在需要将其整合到数据采集系统中根据调查结果生成三种不同的统计图. 一.统计模型的分析和设计 实现统计图显示的流 ...
- 【Java EE 学习 74 上】【数据采集系统第六天】【使用Jfreechart的统计图实现】【Jfreechart的基本使用方法】
之前已经实现了数据的采集,现在已经有了基本的数据,下一步就需要使用这些数据实现统计图的绘制了.这里使用Jfreechart实现这些统计图的绘制.首先看一下Jfreechart的基本用法,只有知道了它的 ...
- JFreeChart
花了四个小时给同学写的.还行吧,原来都没有用过到处找资料写的. package DrawLine; import org.jfree.chart.ChartFactory; import org.jf ...
- ZK 使用jfreeChart
前台: <?page title="Grid使用" contentType="text/html;charset=UTF-8"?> <zk x ...
- JavaScript之自我总结篇
最近在看汤姆大叔的"深入理解JavaScript系列",写得真的不错,对于我而言特别是12章到19章,因为大叔研究的点,就主要是从底层来研究JavaScript为什么会出现钟种特有 ...
- WCF服务自我寄宿 Windows服务
WCF寄宿有自我寄宿跟IIS寄宿 服务代码: [ServiceContract] ---服务契约 public interface ICustomerService { [OperationContr ...
- JFreechart在linux下不显示及中文乱码问题
一.使用JFreeChart建的报表,在window下能正常显示,但是放到linux下就报错,而且有时候会把tomcat挂掉, 原因是jfreechart的在linux系统中需要访问java awt库 ...
随机推荐
- MapReduce实例——查询缺失扑克牌
问题: 解决: 首先分为两个过程,Map过程将<=10的牌去掉,然后只针对于>10的牌进行分类,Reduce过程,将Map传过来的键值对进行统计,然后计算出少于3张牌的的花色 1.代码 1 ...
- [Python3网络爬虫开发实战] 1.3.3-pyquery的安装
pyquery同样是一个强大的网页解析工具,它提供了和jQuery类似的语法来解析HTML文档,支持CSS选择器,使用非常方便.本节中,我们就来了解一下它的安装方式. 1. 相关链接 GitHub:h ...
- css3新特性学习系列 -- border
css3新特性 border属性(border-radius.border-image.box-shadow)详解 1.border-radius 圆角 支持:IE9+ 用法: border-rad ...
- laravel学习笔记2--表单
一.Controller 1.Request 1.1.取值:input // 1.取值 echo $request->input('name'); // 2.取不到值时打印默认值 echo $r ...
- UVA 221 城市化地图(离散化思想)
题意: 给出若干个栋楼俯视图的坐标和面积,求从俯视图的南面(可以视为正视图)看过去到底能看到多少栋楼. 输入第一个n说明有n栋楼,然后输入5个实数(注意是实数),分别是楼的左下角坐标(x,y), 然后 ...
- Python使用selenium实现网页用户名 密码 验证码自动登录功能
一.安装selenium 二.下载谷歌浏览器驱动 1.去http://chromedriver.storage.googleapis.com/index.html下载chromedriver.exe( ...
- 关于zkfc与zkserver频繁断开的问题
详见http://blog.csdn.net/dslztx/article/details/51596951
- 洛谷 P2335 SDOI 2005 毒瘤 位图(也补上注释了)
#include<iostream> #include<cstdio> #include<queue> #include<cstring> using ...
- BNUOJ 6023 畅通工程续
畅通工程续 Time Limit: 1000ms Memory Limit: 32768KB This problem will be judged on HDU. Original ID: 1874 ...
- 如何把DEBIAN变成UBUNTU-DESKTOP最少化安装
Ubuntu 18.04没有32位,老电脑要装32位下面方法可以实现 Debian 9.6变成Ubuntu-Desktop 最少化 1 安装Debian 9.6时用expert mode 安装,安装过 ...