统计数据做成水平直方图

#include<stdio.h>

#define MAXHIST 15
#define MAXWORD 11    //一个单词最大的长度
#define IN      1
#define OUT     0

main()
{
    int c, i, nc, state;
    int len;
    int maxvalue;
    int ovflow;
    int wl[MAXWORD];

    state = OUT;
    nc = 0;
    ovflow = 0;
    for(i = 0; i < MAXWORD; ++i) //数组清零
        wl[i] = 0;
    while((c = getchar()) != EOF){
        if(c == ' ' || c == '\n' || c == '\t'){
            state = OUT;      //空白字符出现 标志位置零
            if(nc > 0)
                if(nc < MAXWORD)
                    ++wl[nc];  //计算单词的长度的个数
                else
                    ++ovflow;  //长度超过10的单词的个数
            nc = 0;
        }else if(state == OUT){   //下降沿出现 空白符后的地一个字符
            state = IN;
            nc = 1;    
        }else
            ++nc;              //计算单词的长度
    }                          //结束统计
    maxvalue = 0;         // 在数组中选出最大值的一个程序 !!!
    for(i = 1; i < MAXWORD; ++i)
        if(wl[i] > maxvalue)
            maxvalue = wl[i];

    for(i = 1; i < MAXWORD; ++i){  //打印各单词长度的数量  
        printf("%5d - %5d : ", i, wl[i]);
        if(wl[i] > 0){
            if((len = wl[i] * MAXHIST / maxvalue) <= 0)
                   //单词个数到*之间的转换  最多个数的单词会有会有MAXHIST个*
             
                len = 1;    //并且当有单词数时至少有一个*
        }else
            len = 0;
        while(len > 0){
            putchar('*');
            --len;         //打印len个*
        }
        putchar('\n');      //打印空格 跳到下一个i
    }
    if(ovflow > 0)
        printf("there are %d words >= %d\n",ovflow,MAXWORD);
}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在R语言中,根据统计数据创建频数直方图(也称为频率分布直方图)是非常常见的数据可视化步骤。以下是如何使用`ggplot2`包来创建一个基本的频数直方图的步骤: 1. 首先,确保你已经安装了`ggplot2`和`tidyverse`(如果尚未安装,可以使用`install.packages("ggplot2")`和`install.packages("tidyverse")`),这两个包提供了强大的绘图功能。 2. 准备数据数据可以是一个向量,包含你要分析的数值。例如,假设我们有一个名为`data`的变量,它包含了样本数据。 ```R data <- c(2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30) # 示例数据 ``` 3. 使用`ggplot`创建基础图形: ```R library(ggplot2) library(tidyverse) # 创建数据框,方便ggplot处理 hist_data <- data.frame(value = data) # 创建直方图 hist_plot <- ggplot(hist_data, aes(x = value)) + geom_histogram(binwidth = 2, fill = "lightblue", color = "black") + labs(title = "Frequency Histogram", x = "Value", y = "Frequency") ``` 4. `binwidth`参数定义了每个柱子(或“箱”)的宽度,你可以根据数据的性质调整这个值。这里设置了`binwidth = 2`,表示每个箱间隔为2。 5. `fill`和`color`用于设置柱子的颜色。 6. `labs()`函数用于添加图表标题和轴标签。 现在你已经有了一个基本的频数直方图。如果你的数据更复杂,比如来自数据框或数据集,只需要将数据源换成相应的变量名即可。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值