`
lilin530
  • 浏览: 90616 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

绘制不同的条形图

阅读更多

web.xml

这里只贴出公共部分,后面的介绍需要修改此配置文件的,我会另外的说明给出。
web.xml

1 <?xml version="1.0" encoding="UTF-8"?>
2 <web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee"
3     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
4     xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
5 http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
6
7     <!-- 增加的jfreechart的处理类 -->
8     <servlet>
9         <servlet-name>DisplayChart</servlet-name>
10         <servlet-class>
11             org.jfree.chart.servlet.DisplayChart
12         </servlet-class>
13         <init-param>
14             <!-- 解决可能存在的servlet中文乱码问题 -->
15             <param-name>encoding</param-name>
16             <param-value>GBK</param-value>
17         </init-param>
18     </servlet>
19     <servlet-mapping>
20         <servlet-name>DisplayChart</servlet-name>
21         <url-pattern>/DisplayChart</url-pattern>
22     </servlet-mapping>
23
24 </web-app>



下面来介绍用java文件书写的条形图(我用的是servlet实现,为了演示效果,我条形图放了四个实现不同效果条形图的方法)
2.1 在配置文件中加servlet文件的配置

<!-- 为了把新建图的代码写在java代码中增加的一个servlet -->

<servlet>
    <servlet-name>BarServlet</servlet-name>
    <servlet-class>bar.BarServlet</servlet-class>
    <init-param>
        <!-- 解决可能存在的servlet中文乱码问题 -->
        <param-name>encoding</param-name>
        <param-value>GBK</param-value>
    </init-param>
</servlet>
<servlet-mapping>
    <servlet-name>BarServlet</servlet-name>
    <url-pattern>/BarServlet</url-pattern>
</servlet-mapping>
2.2 BarServlet.java
BarServlet.java

  1 package bar;
  2
  3 import org.jfree.chart.ChartFactory;
  4 import org.jfree.chart.ChartRenderingInfo;
  5 import org.jfree.chart.JFreeChart;
  6 import org.jfree.chart.labels.ItemLabelAnchor;
  7 import org.jfree.chart.labels.ItemLabelPosition;
  8 import org.jfree.chart.labels.StandardCategoryItemLabelGenerator;
  9 import org.jfree.chart.plot.PlotOrientation;
10 import org.jfree.chart.renderer.category.BarRenderer3D;
11 import org.jfree.chart.servlet.ServletUtilities;
12 import org.jfree.data.category.CategoryDataset;
13 import org.jfree.data.category.DefaultCategoryDataset;
14 import org.jfree.data.general.DatasetUtilities;
15 import org.jfree.ui.TextAnchor;
16 import org.jfree.chart.ChartUtilities;
17 import java.awt.BasicStroke;
18 import java.awt.Color;
19 import java.awt.Font;
20 import java.io.IOException;
21 import java.io.PrintWriter;
22 import org.jfree.chart.title.TextTitle;
23 import org.jfree.chart.axis.AxisLocation;
24 import org.jfree.chart.axis.CategoryLabelPositions;
25 import org.jfree.chart.axis.NumberAxis;
26 import org.jfree.chart.axis.CategoryAxis;
27 import org.jfree.chart.axis.ValueAxis;
28 import org.jfree.chart.entity.StandardEntityCollection;
29 import org.jfree.chart.plot.CategoryPlot;
30 import javax.servlet.ServletOutputStream;
31 import javax.servlet.http.HttpServlet;
32 import javax.servlet.http.HttpServletRequest;
33 import javax.servlet.http.HttpServletResponse;
34 import javax.servlet.http.HttpSession;
35
36 /**
37 *
38 * Module: BarServlet.java
39 * Description: 条形图用java代码来书写
40 * Company:
41 * Asiainfo Author: pan**eng
42 * Date: Dec 15, 2011
43 */
44
45 public class BarServlet extends HttpServlet {
46
47     private static final long serialVersionUID = 1L;
48     // 访问此servlet的url为:http://localhost:8080/JFreeChart/BarServlet?num=2
49     public void doGet(HttpServletRequest request, HttpServletResponse response)
50             throws IOException {
51         //获得回话的session对象,ServletUtilities类的saveChartAsPNG方法需要用时把session放进去
52 //HttpSession session = request.getSession();
53         /**解决servlet输出的中文乱码问题,这里的乱码和条形图中的乱码可是两种不同的乱码
54          * 如果使用response.getWriter()方法获得对象,则setContentType方法必须放在获得out对象之前
55          * 如果使用response.getOutputStream()方法获得对象,则setContentType方法放在获得out对象之前或之后都可以
56          * */
57         response.setContentType("text/html; charset=GBK");
58         PrintWriter out = response.getWriter();
59         //ServletOutputStream out = response.getOutputStream();
60
61 //response.setCharacterEncoding("GBK");
62
63         String num = request.getParameter("num");//获得请求url的参数,用来判断是显示第几个条形图示例
64
65         /*
66          * 为了少新建文件,也为了少配置web.xml文件,把条形图的介绍都放在一个servlet中了,
67          * 每个if分支都是独立的,调用四个不同的方法,实现四个不同效果的条形图,从1到4,功能依次增强
68 */
69          String filename ="";//定义一个公共变量,保存生成的名称
70         if (num.equals("1")) {
71             out.print("<b>第一种情况,一个简单的条形图</b><br><h1></h1>");
72             filename = bar1();
73         } else if (num.equals("2")) {
74             out.print("<b>第二种情况,各种不同颜色的条形图</b><br><h1></h1>");
75             filename = bar2();
76         } else if (num.equals("3")) {
77             out.print("<b>第三种情况,多个条形图对比</b><br><h1></h1>");
78             filename = bar3();
79         } else if (num.equals("4")) {
80             out.print("<b>第四种情况,多个条形图对比并且每个条形图上面加上数字</b><br><h1></h1>");
81             filename = bar4();
82         } else {
83             out.println("<b>输入的url不对,请输入1、2、3、4 来查看不同的条形图</b><br><h1></h1>");
84         }
85         String graphURL = request.getContextPath() + "/DisplayChart?filename="
86                 + filename;// 调用jfreechart的处理类
87 // 条形图的输出
88 //---------------start---------------
89         out.println("<html>");
90         out.println("<body>");
91         out
92                 .println("<img src=http://www.cnblogs.com/java-pan/archive/2011/12/17//""
93                         + graphURL
94                         + "\" width=600 height=400 border=0 usemap=\"#"
95                         + filename + "\"/>");
96         out.println("</body>");
97         out.println("</html>");
98         //---------------end---------------
99         out.flush();//刷新该流的缓冲
100         out.close();//关闭该流并释放与之关联的所有系统资源
101     }
102     //加上接受post请求的处理方法,实质也还是调用doGet方法来处理
103     public void doPost(HttpServletRequest request, HttpServletResponse response)
104             throws IOException {
105         this.doGet(request, response);
106     }
107     //条形图示例1 一个简单的条形图
108     public String bar1() throws IOException{
109         DefaultCategoryDataset dataset = new DefaultCategoryDataset();
110         // 设置填充数据
111         dataset.addValue(25, "襄阳", "襄城");
112         dataset.addValue(20, "襄阳", "樊城");
113         dataset.addValue(15, "襄阳", "襄州");
114         dataset.addValue(10, "襄阳", "东津");
115         dataset.addValue(5, "襄阳", "鱼梁州");
116
117         /**
118          * ChartFactory类的createBarChart3D方法参数介绍:
119          * createBarChart3D
120          * (
121          * String title, 图表标题
122          * String categoryAxisLabel, 统计种类轴标题,可以理解为X轴标题
123          * String valueAxisLabel,统计值轴标题,可以理解为y轴标题
124          * CategoryDataset dataset, 绘图数据集
125          * PlotOrientation orientation, 用于设置柱形图的绘制方向,PlotOrientation.VERTICAL(垂直),PlotOrientation.HORIZONTAL(水平)
126          * boolean legend, 用于设定是否显示图例
127          * boolean tooltips, 用于设定是否采用标准生成器
128          * boolean urls 用于设置定否包生成链接
129          * )
130 */
131         JFreeChart chart = ChartFactory.createBarChart3D("襄阳城区人口统计", "地区",
132                 "人口数(单位:万)", dataset, PlotOrientation.VERTICAL, true,
133                 false, false);
134
135         // 设置主标题指定字体,解决中文乱码
136         Font font = new Font("宋体", Font.BOLD, 20);
137         TextTitle title = new TextTitle("襄阳城区人口统计(主标题)", font);
138         chart.setTitle(title);
139         /* 以上三句和下面的一句效果是一样的 */
140         // chart.setTitle(new TextTitle("襄阳城区人口统计(主标题)",new
141 // Font("宋体",Font.BOLD,20)));
142         CategoryPlot plot = chart.getCategoryPlot();
143         //获得横轴对象,并设置相关的绘图属性
144         CategoryAxis domainAxis = plot.getDomainAxis();
145         domainAxis.setAxisLineStroke(new BasicStroke(1.6f));  // 设置轴线粗细
146         domainAxis.setAxisLinePaint(Color.BLACK);             //设置轴线颜色
147         domainAxis.setCategoryLabelPositionOffset(5);         //设置统计种类与轴线的颜色
148         domainAxis.setLabelPaint(Color.BLACK);                //设置坐标轴标题颜色
149         domainAxis.setCategoryLabelPositions(CategoryLabelPositions.STANDARD);// 设置坐标轴标题旋转角度
150         /*------设置X轴坐标上的文字,解决中文乱码-----------*/
151         /* 本例指的是襄城、樊城、襄州、东津、鱼梁州这些字 */
152         domainAxis.setTickLabelFont(new Font("sans-serif", Font.PLAIN, 15));
153         /*------设置X轴的标题文字,解决中文乱码------------*/
154         /* 本例指的是"地区"两个字 */
155         domainAxis.setLabelFont(new Font("宋体", Font.PLAIN, 15));
156
157         //获得纵轴对象,并设置相关的绘图属性
158         ValueAxis rangeAxis = plot.getRangeAxis();
159         rangeAxis.setAxisLineStroke(new BasicStroke(1.6f));       //设置轴线粗细
160         rangeAxis.setAxisLinePaint(Color.RED);                    // 设置轴线颜色
161         rangeAxis.setUpperBound(30.0f);                           // 设置坐标最大值
162         rangeAxis.setTickMarkStroke(new BasicStroke(1.6f));       //设置坐标标记大小
163         rangeAxis.setTickMarkPaint(Color.BLACK);                  // 设置坐标标记颜色
164         rangeAxis.setLabelPaint(Color.BLACK);                     //设置坐标轴标题颜色
165         rangeAxis.setLabelAngle(Math.PI / 2);                     //设置坐标轴标题旋转角度   
166         rangeAxis.setLabelFont(new Font("黑体", Font.PLAIN, 15)); //设置Y轴的标题文字,解决中文乱码
167         rangeAxis.setUpperMargin(0.15);                           //设置最高一个柱与图片顶端的距离
168         rangeAxis.setLowerMargin(0.15);                           //设置最低的一个柱与图片底端的距离
169
170 //也可以通过NumberAxis的方法解决y轴中文乱码问题       
171         /*------设置Y轴的标题文字,解决中文乱码------------*/
172         // 本例中指的是"销量"两个字
173 //NumberAxis numberaxis = (NumberAxis) plot.getRangeAxis();
174 //numberaxis.setLabelFont(new Font("黑体", Font.PLAIN, 15));
175         /*------设置Y轴坐标上的文字,解决中文乱码------------*/
176         /* 本例中指的是"0,25,50..."这些值,因为本来这些就是数值,所以有没有此句都可以 */
177         // numberaxis.setTickLabelFont(new Font("sans-serif", Font.PLAIN,
178 // 15));
179
180         /*------解决底部汉字乱码的问题,如过程序没有底部,下面的一行代码如果释放的话会报空指针的错误-----------*/
181         chart.getLegend().setItemFont(new Font("宋体", Font.PLAIN, 15));//显示的是dataset.addValue中的值"襄阳"
182         /**
183          * ServletUtilities类的saveChartAsPNG方法参数介绍:
184          * saveChartAsPNG(
185          * JFreeChart chart, chart对象
186          * int width, 图片的宽度
187          * int height, 图片的高度
188          * ChartRenderingInfo info,info对象,可以为null
189          * HttpSession session session对象,可以为null
190          * )
191 */
192
193         String filename = ServletUtilities
194                 .saveChartAsPNG(chart, 600, 400, null);
195         /**
196          * 使用writeImageMap方法输出图片 <?暂时还有问题,后期会修改?>
197         ChartRenderingInfo info=new ChartRenderingInfo(new StandardEntityCollection());
198         ChartUtilities.writeImageMap(out, filename, info, true);
199 */
200         return filename;
201     }
202     //条形图示例2 一个不同颜色的条形图
203     public String bar2() throws IOException {
204         double[][] data = http://www.cnblogs.com/java-pan/archive/2011/12/17/new double[][] { {25},{ 20 }, { 15 }, { 10 },
205                 { 5 } };
206         String[] rowKeys = { "襄城", "樊城", "襄州", "东津","鱼梁州" };
207         String[] columnKeys = { "" };
208         CategoryDataset dataset = DatasetUtilities.createCategoryDataset(
209                 rowKeys, columnKeys, data);
210         JFreeChart chart = ChartFactory
211                 .createBarChart3D("襄阳城区人口统计", "地区", "人口", dataset,
212                         PlotOrientation.VERTICAL, true, false, false);
213         //设置主标题指定字体,解决中文乱码
214         Font font = new Font("宋体", Font.BOLD, 16);
215         TextTitle title = new TextTitle("襄阳城区人口统计(主标题)", font);
216         chart.setTitle(title);
217
218         CategoryPlot plot = chart.getCategoryPlot();
219         NumberAxis numberaxis = (NumberAxis) plot.getRangeAxis();
220         CategoryAxis domainAxis = plot.getDomainAxis();
221         /*------设置X轴坐标上的文字-----------*/
222         //domainAxis.setTickLabelFont(new Font("sans-serif", Font.PLAIN, 11));
223         /*------设置X轴的标题文字------------*/
224         domainAxis.setLabelFont(new Font("宋体", Font.PLAIN, 12));
225         /*------设置Y轴坐标上的文字-----------*/
226         //numberaxis.setTickLabelFont(new Font("sans-serif", Font.PLAIN, 12));
227         /*------设置Y轴的标题文字------------*/
228         numberaxis.setLabelFont(new Font("黑体", Font.PLAIN, 12));
229
230         /*------解决底部汉字乱码的问题-----------*/
231         chart.getLegend().setItemFont(new Font("宋体", Font.PLAIN, 12));
232         String filename = ServletUtilities.saveChartAsPNG(chart, 500, 300,
233                 null);
234         return filename;
235     }
236
237     //条形图示例3 多个条形图对比
238     public String bar3() throws IOException {
239         double[][] data = http://www.cnblogs.com/java-pan/archive/2011/12/17/new double[][] { { 1310, 1220, 1110, 1000 ,666},
240                 { 720, 700, 680, 640 ,777}, { 1130, 1020, 980, 800 ,888},
241                 { 440, 400, 360, 300 ,999} ,{400,400,400,400,555}};
242
243         String[] rowKeys = { "猪肉", "牛肉", "鸡肉", "鱼肉","羊肉" };
244         String[] columnKeys = { "襄城", "樊城", "襄州", "东津","鱼梁州" };
245         CategoryDataset dataset = DatasetUtilities.createCategoryDataset(
246                 rowKeys, columnKeys, data);
247         JFreeChart chart = ChartFactory
248                 .createBarChart3D("襄阳各区肉类销量统计图", "地区", "销量", dataset,
249                         PlotOrientation.VERTICAL, true, false, false);
250         //设置主标题指定字体,解决中文乱码
251         Font font = new Font("宋体", Font.BOLD, 16);
252         TextTitle title = new TextTitle("肉类销量统计图(主标题)", font);
253         chart.setTitle(title);
254
255         CategoryPlot plot = chart.getCategoryPlot();
256         NumberAxis numberaxis = (NumberAxis) plot.getRangeAxis();
257         CategoryAxis domainAxis = plot.getDomainAxis();
258         /*------设置X轴坐标上的文字-----------*/
259         domainAxis.setTickLabelFont(new Font("sans-serif", Font.PLAIN, 11));
260         /*------设置X轴的标题文字------------*/
261         domainAxis.setLabelFont(new Font("宋体", Font.PLAIN, 12));
262         /*------设置Y轴坐标上的文字-----------*/
263         //numberaxis.setTickLabelFont(new Font("sans-serif", Font.PLAIN, 12));
264         /*------设置Y轴的标题文字------------*/
265         numberaxis.setLabelFont(new Font("黑体", Font.PLAIN, 12));
266
267         /*------解决底部汉字乱码的问题-----------*/
268         chart.getLegend().setItemFont(new Font("宋体", Font.PLAIN, 12));
269         String filename = ServletUtilities
270                 .saveChartAsPNG(chart, 500, 300, null);
271         return filename;
272     }
273
274     //条形图示例4 多个条形图对比并且每个条形图上面加上数字
275     public String bar4() throws IOException {
276         double[][] data = http://www.cnblogs.com/java-pan/archive/2011/12/17/new double[][] { { 1310, 1220, 1110, 1000 ,666},
277                 { 720, 700, 680, 640 ,777}, { 1130, 1020, 980, 800,888 },
278                 { 440, 400, 360, 300 ,999} ,{400,400,400,400,555}};
279
280         String[] rowKeys = { "猪肉", "牛肉", "鸡肉", "鱼肉" ,"羊肉"};
281         String[] columnKeys = { "襄城", "樊城", "襄州", "东津","鱼梁州" };
282         CategoryDataset dataset = DatasetUtilities.createCategoryDataset(
283                 rowKeys, columnKeys, data);
284         JFreeChart chart = ChartFactory.createBarChart3D("襄阳各区肉类销量统计图", "地区",
285                 "销量", dataset, PlotOrientation.VERTICAL, true, true, false);
286
287         CategoryPlot plot = chart.getCategoryPlot();
288
289         //设置网格背景颜色
290         plot.setBackgroundPaint(Color.white);
291         //设置网络竖线颜色
292         plot.setDomainGridlinePaint(Color.pink);
293         //显示每个柱的数值,并修改该数字的字体属性
294         BarRenderer3D renderer = new BarRenderer3D();
295         renderer
296                 .setBaseItemLabelGenerator(new StandardCategoryItemLabelGenerator());
297         renderer.setBaseItemLabelsVisible(true);
298         //默认的数字显示在柱子中,通过以下两句调整数字的显示
299 //注意,此句很关键,若无此句,那数字的显示会覆盖,给人数字没有显示出来的问题
300         renderer.setBasePositiveItemLabelPosition(new ItemLabelPosition(
301                 ItemLabelAnchor.OUTSIDE12, TextAnchor.BASELINE_LEFT));
302         renderer.setItemLabelAnchorOffset(10D);
303         //设置每个地区所包含的平行柱的之间的距离
304 //renderer.setItemMargin(0.3);
305         plot.setRenderer(renderer);
306
307         //设置地区、销量的显示位置
308 //将下方的“肉类”放到上方
309         plot.setDomainAxisLocation(AxisLocation.TOP_OR_RIGHT);
310         //将默认的左边的“销量”放到右方
311         plot.setRangeAxisLocation(AxisLocation.BOTTOM_OR_RIGHT);
312         NumberAxis numberaxis = (NumberAxis) plot.getRangeAxis();
313         CategoryAxis domainAxis = plot.getDomainAxis();
314         //图表标题以及副标题乱码
315         Font font = new Font("宋体", Font.BOLD, 16);
316         TextTitle title = new TextTitle("襄阳", font);//副标题
317         TextTitle subtitle = new TextTitle("肉类销量统计图", new Font("黑体", Font.BOLD,
318                 12));
319         chart.addSubtitle(subtitle);//子标题
320         chart.setTitle(title); //标题
321
322 //X轴乱码
323 //X轴坐标上的文字:
324         domainAxis.setTickLabelFont(new Font("sans-serif", Font.PLAIN, 11));
325         //X轴坐标标题(肉类)
326         domainAxis.setLabelFont(new Font("宋体", Font.PLAIN, 12));
327         //Y轴坐标上的文字
328         numberaxis.setTickLabelFont(new Font("sans-serif", Font.PLAIN, 12));
329         //Y轴坐标标题(销量):
330         numberaxis.setLabelFont(new Font("黑体", Font.PLAIN, 12));
331         //图表底部乱码(猪肉等文字)
332         chart.getLegend().setItemFont(new Font("黑体", Font.PLAIN, 12));
333         String filename = ServletUtilities
334                 .saveChartAsPNG(chart, 700, 400, null);
335         return filename;
336     }
337 }


3 result



bar1的运行截图:

访问的URL为:http://localhost:8080/JFreeChart/BarServlet?num=1

image

bar2的运行截图:

访问的URL为:http://localhost:8080/JFreeChart/BarServlet?num=2

image

bar3的运行截图:

访问的URL为:http://localhost:8080/JFreeChart/BarServlet?num=3

image

bar4的运行截图:

访问的URL为:http://localhost:8080/JFreeChart/BarServlet?num=4

image

说明:以上代码按照图片建立目录结构,导入jfreechart的jar包,把代码拷贝到文件中即可以直接使用,只是如果有需要的,拷贝时请不要直接拷贝web.xml中的web-app标签的生命以及定义的属性信息,这个可能会因为环境引起错误。

 

分享到:
评论

相关推荐

    python+matplotlib绘制3D条形图实例代码

    最后通过`bar3d`函数绘制了3D条形图,并设置了不同的阴影效果来进行对比展示。 #### 五、扩展阅读 - **更多样式设置**:除了阴影效果外,还可以通过修改`bar3d`函数中的参数来改变颜色、透明度等样式。 - **交互式...

    在python中用matplotlib绘制简单的横向和纵向条形图

    绘制横向条形图: plt.barh(x,y,height=0.2,color=red,label=第一天) #x,y为横纵坐标数据,height设置条形图的宽度,color设置条形图颜色,label设置条形图图列 绘制三条条形图的代码示例如下: from matplotlib ...

    C#语言编写的绘制条形图程序

    在本项目中,我们关注的是一个使用C#编程语言在Visual Studio环境下开发的Windows Forms(WINFORM)应用程序,其核心功能是绘制条形图。这个程序不仅提供了代码实现,还涉及到了与SQL Server数据库的交互。以下是...

    matplotlib常用统计图-绘制直方图-绘制多次条形图-绘制条形图

    - 使用 `bar()` 函数绘制条形图。 - `title`、`xlabel` 和 `ylabel` 设置了图表的标题和坐标轴标签。 #### 五、散点图绘制 ##### 5.1 散点图简介 散点图是用于展示两个变量之间关系的一种图表。通过观察点的分布,...

    QT绘制3D条形图源码.zip

    3D条形图是一种常见的数据可视化工具,用于比较不同类别的数量或比例。在QT中,创建3D条形图通常涉及以下步骤: 1. **数据准备**:首先,你需要组织你的数据,将其转化为适合3D渲染的格式。这可能包括定义每个条形...

    tiaoxingtu.zip_matlab绘制条形图_条形 图例_条形图

    本文将详细讲解如何使用MATLAB绘制条形图,包括添加图例和坐标轴标签,以及如何利用提供的示例代码进行操作。 首先,让我们了解条形图的基本构造。条形图由一系列垂直或水平的矩形(条)组成,每个矩形的长度对应...

    extjs图表绘制之条形图实现方法分析

    本文实例讲述了extjs图表绘制之条形图实现方法。分享给大家供大家参考,具体如下: 这篇文章将介绍extjs图表中条形图。 将实现以下的功能: 1.从后端请求数据并运用到图表中,形成动态数据。 2.查询出每年各个月中...

    python Matplotlib(三)——绘制直方图和条形图1

    总结来说,Python的Matplotlib库提供了强大的数据可视化能力,包括绘制条形图和直方图。掌握这些基本技巧,可以帮助我们在数据分析过程中更好地理解和传达数据的故事。在处理和分析数据时,合理利用可视化工具,可以...

    Qt QChart 绘制饼状图、曲线、条形图,并保存曲线图形

    **绘制条形图** 条形图用于比较不同类别之间的数据量。在Qt中,我们使用QBarSeries和QBarSet来实现。首先创建QBarSeries,然后为每个类别创建一个QBarSet,再向QBarSeries中添加这些set。 ```cpp QBarSeries *bar...

    matlab 绘制 阴影 黑白 柱状图 条形图

    在MATLAB中,绘制柱状图或条形图是一种常用的数据可视化方法,尤其适用于比较不同类别之间的数值。本文将详细讲解如何使用MATLAB绘制带有阴影的黑白柱状图,以及如何利用提供的`figure`文件进行进一步理解。 首先,...

    安卓绘制动态柱状图 条形图 折线图

    WilliamChart是一个流行的开源库,专门用于在Android平台上动态绘制柱状图、条形图和折线图。这个库由William Chan(陈威良)开发,设计简洁且易于使用,能够满足开发者对于图表的各种需求。 首先,我们来详细了解...

    android实现自定义条形图

    首先,我们需要创建一个自定义的View来绘制条形图。在Android中,我们可以继承`View`或`Canvas`类,然后重写`onDraw()`方法。在这个方法里,我们将利用`Canvas`提供的绘图API,如`drawRect()`来绘制各个条形。每个...

    在MATLAB中查询MSSQL数据库并绘制条形图

    在MATLAB中查询MSSQL数据库并绘制条形图,需要使用MATLAB的数据库连接工具以及绘图函数。附件代码展示了如何连接到MSSQL数据库,查询数据,并使用这些数据绘制条形图。 首先,确保你已经安装了MATLAB的Database ...

    条形图和折线图demo

    条形图是一种以矩形的长度表示数量的统计图,适用于比较不同类别的数据。在Android中实现条形图,可以使用开源库如MPAndroidChart、AndroidPlot等。MPAndroidChart是一个强大的库,它提供了丰富的自定义选项,包括...

    [Matplotlib科学绘图系列]使用Matplotlib绘制条形图

    [Matplotlib科学绘图系列]使用Matplotlib绘制条形图 实现步骤 1、导入必要的库:我们需要导入matplotlib.pyplot库,以便进行数据可视化的工作。这个库非常常用,并且对于数据可视化有很强大的支持。我们将这个库简写...

    MATLAB条形图完全指南:从基础绘制到高级自定义

    在数据分析和可视化中,条形图是一种非常流行的图表类型,它通过条形的长度来表示数据的大小,易于比较不同类别之间的数值。MATLAB提供了强大的条形图绘制功能,不仅可以轻松创建基本的条形图,还可以自定义图形的...

    R语言ggplot2柱状图(条形图)、簇状、并列、百分比绘图方法总结

    柱状图是一种常用的数据可视化图形,它通过条形的长度来表示数据的大小。在R语言中,柱状图通常用于展示分类变量的频数分布。簇状柱状图和并列柱状图是柱状图的两种变体,簇状柱状图将不同组的数据并排展示,以便...

    MATLAB中3D条形图的绘制技巧与应用

    本文将详细介绍如何使用bar3函数,并提供一些实用的代码示例,以帮助读者掌握在MATLAB中绘制3D条形图的技巧。 三维条形图在实际应用中非常有用,例如在市场分析、科学研究和工程设计中。通过以上示例,你可以看到...

    如何采用C#绘制39条形码

    7. **绘制条形码**:虽然在提供的代码片段中`DrawBitmap()`方法未完成,但其实现应包含根据编码表和宽度信息绘制具体条形码的逻辑。 通过上述介绍,我们可以看出在C#中实现39条形码的关键在于正确地定义宽窄比、...

Global site tag (gtag.js) - Google Analytics