python可视化

您所在的位置:网站首页 条形图柱状图的区别 python可视化

python可视化

2023-08-23 15:05| 来源: 网络整理| 查看: 265

这里写自定义目录标题 一、条形图1.1 竖型条形图1.2 横型条形图1.3 并列条形图 二、条形图2.1 直方图与条形图区别2.2 直方图示例

一、条形图

条形图(bar chart),也称为柱状图,是一种以长方形的长度为变量的统计图表,长方形的长度与它所对应的变量数值呈一定比例。。

1.1 竖型条形图

画条形图要用到 pyplot 中的 bar 函数,该函数的基本语法为:

bar(x,height,width,**kwargs) #height:个数或者一个数组,表示条形高度 #width:可选参数,一个数或一个数组,条形宽度,默认0.8 #**kwargs:不定长的关键字参数,用字典形式设置条形图的其他属性,包括图形标签 label,颜色标签 color,不透明度 alpha 等

假设对以下表进行条形图展示,

饮料boygirl六个核弹69忘崽年奶74王老菊64茶兀26雷碧15

画出boy买各类饮料数量的竖条形图,代码如下:

# 设置中文显示 plt.rcParams['font.sans-serif'] = ['SimHei'] plt.rcParams['axes.unicode_minus'] = False waters = ('六个核弹', '忘崽年奶', '王老菊', '茶兀', '雷碧') boy_buy_number = [6, 7, 6, 2, 1] plt.bar(waters, boy_buy_number) plt.title('boy买各类饮料数量') plt. plt.show()

输出图如下: 在这里插入图片描述

1.2 横型条形图

画出boy买各类饮料数量的竖条形图,代码如下:

import matplotlib.pyplot as plt # 设置中文显示 plt.rcParams['font.sans-serif'] = ['SimHei'] plt.rcParams['axes.unicode_minus'] = False waters = ('六个核弹', '忘崽年奶', '王老菊', '茶兀', '雷碧') boy_buy_number = [6, 7, 6, 2, 1] plt.barh(waters, boy_buy_number) plt.title('boy买各类饮料数量') plt.show()

输出图如下: 在这里插入图片描述

1.3 并列条形图

画出boy和girl买各类饮料数量的竖条形图,代码如下:

import matplotlib.pyplot as plt import numpy as np # 设置中文显示 plt.rcParams['font.sans-serif'] = ['SimHei'] plt.rcParams['axes.unicode_minus'] = False # 输入统计数据 waters = ('六个核弹', '忘崽年奶', '王老菊', '茶兀', '雷碧') boy_buy_number = [6, 7, 6, 1, 2] girl_buy_number = [9, 4, 4, 5, 6] bar_width = 0.3 # 条形宽度 index_male = np.arange(len(waters)) # 男生条形图的横坐标 index_female = index_male + bar_width # 女生条形图的横坐标 # 使用两次 bar 函数画出两组条形图 plt.bar(index_male, height=boy_buy_number, width=bar_width, color='g', label='男性') plt.bar(index_female, height=girl_buy_number, width=bar_width, color='r', label='女性') plt.legend() # 显示图例 plt.xticks(index_male + bar_width/2, waters) # 让横坐标轴刻度显示 waters 里的饮用水, index_male + bar_width/2 为横坐标轴刻度的位置 plt.ylabel('购买量') # 纵坐标轴标题 plt.title('男、女购买饮料情况') # 图形标题 plt.show()

输出图如下:

在这里插入图片描述

二、条形图 2.1 直方图与条形图区别 条形图:用条形的长度表示各类别频数的多少,其宽度(表示类别)则是固定的;直方图:用面积表示各组频数的多少,矩形的高度表示每一组的频数或频率,宽度则表示各组的组距,因此其高度与宽度均有意义。分组数据具有连续性,直方图的各矩形通常是连续排列,而条形图则是分开排列。条形图主要用于展示分类数据,而直方图则主要用于展示数据型数据。 2.2 直方图示例

展示不同观影时长的区间统计直方图

import pandas as pd import matplotlib.pyplot as plt import pylab as pl # 展现不同电影的时长分布状态 plt.figure(figsize=(20, 8), dpi=100) # 准备时长数据 time =[131, 98, 125, 131, 124, 139, 131, 117, 128, 108, 135, 138, 131, 102, 107, 114, 119, 128, 121, 142, 127, 130, 124, 101, 110, 116, 117, 110, 128, 128, 115, 99, 136, 126, 134, 95, 138, 117, 111,78, 132, 124, 113, 150, 110, 117, 86, 95, 144, 105, 126, 130,126, 130, 126, 116, 123, 106, 112, 138, 123, 86, 101, 99, 136,123, 117, 119, 105, 137, 123, 128, 125, 104, 109, 134, 125, 127,105, 120, 107, 129, 116, 108, 132, 103, 136, 118, 102, 120, 114,105, 115, 132, 145, 119, 121, 112, 139, 125, 138, 109, 132, 134,156, 106, 117, 127, 144, 139, 139, 119, 140, 83, 110, 102,123,107, 143, 115, 136, 118, 139, 123, 112, 118, 125, 109, 119, 133,112, 114, 122, 109, 106, 123, 116, 131, 127, 115, 118, 112, 135,115, 146, 137, 116, 103, 144, 83, 123, 111, 110, 111, 100, 154,136, 100, 118, 119, 133, 134, 106, 129, 126, 110, 111, 109, 141,120, 117, 106, 149, 122, 122, 110, 118, 127, 121, 114, 125, 126,114, 140, 103, 130, 141, 117, 106, 114, 121, 114, 133, 137, 92,121, 112, 146, 97, 137, 105, 98, 117, 112, 81, 97, 139, 113,134, 106, 144, 110, 137, 137, 111, 104, 117, 100, 111, 101, 110,105, 129, 137, 112, 120, 113, 133, 112, 83, 94, 146, 133, 101,131, 116, 111, 84, 137, 115, 122, 106, 144, 109, 123, 116, 111,111, 133, 150] # 定义一个间隔大小 a = 5 # # 得出组数 bins = int((max(time) - min(time)) / a) # 画出直方图 plt.hist(time, bins=100) # 指定刻度的范围,以及步长 plt.xticks(list(range(min(time), max(time)))[::2]) plt.xlabel("电影时长大小") plt.ylabel("电影的数据量") plt.grid(True, linestyle='--', alpha=0.5) plt.show()

输出图如下: 在这里插入图片描述



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3