小象学院数据分析笔记:绘制常见的图形

折线图:
plt.plot(x,y): x,y分别为x和y轴数据

# 添加数值标注
import pandas as pd
import matplotlib.pyplot as pltimport pandas as pd
import matplotlib.pyplot as plt
%matplotlib inline
stock_df = pd.read_csv('../data/stock_df.csv')
plt.figure(figsize = (10,5))
# 绘制贵州茅台每日股价收盘价折线图
plt.plot(stock_df.Date, stock_df['Close'], label = '收盘价')

# 设置图像标题为'贵州茅台每日股价折线图'
plt.title('贵州茅台每日股价折线图')

# 将x轴刻度标签旋转60度
plt.xticks(rotation = 60)

# 显示图例
plt.legend()
plt.show()

柱形图:
plt.bar(x,height,width,color) :x轴标签,height每个标签对应的高度

menu = pd.read_csv('../data/menu.csv')
plt.figure(figsize = (20,8))
nutri_name = ['Total Fat (% Daily Value)','Saturated Fat (% Daily Value)',
              'Cholesterol (% Daily Value)','Sodium (% Daily Value)','Carbohydrates (% Daily Value)',
              'Vitamin A (% Daily Value)','Calcium (% Daily Value)','Iron (% Daily Value)']
nutri = menu.loc[0 , nutri_name]
plt.bar(nutri_name, nutri, width=0.5, color=['b','r','g','y','c','m','b','k'])
for i in nutri.index:     
    # TODO
    # 为柱形添加数值标注,使用plt.text()函数,标注内容为nutri中的数值,ha设置为'center',va设置为'bottom'
    plt.text(i,nutri[i],nutri[i], ha='center',va='bottom')
plt.xticks(rotation = 10)
plt.title('烟肉蛋麦满分营养成分每日推荐摄入量百分比柱形图')
plt.show()

直方图:
绘制直方图使用plt.hist()函数:
plt.hist(data, bins, facecolor, edgecolor)

# 选择 menu 数据集中的 Calories 列,将数据记录为 calories
calories = menu.Calories
# 设置直方图的组数,这里设置为从最小值开始每加100为一组
group = int((max(calories)-min(calories))/100)

# 绘制直方图, 矩形填充色设置为'blue',边框颜色设置为'black'
plt.hist(calories, group, facecolor="blue", edgecolor="black")

# 图像标题设置为'麦当劳菜单卡路里含量分布直方图'
plt.title('麦当劳菜单卡路里含量分布直方图')
plt.show()

data:绘图用到的数据
bins:直方图的条形数目,
facecolor:矩形的填充颜色
edgecolor:条形的边框颜色

直方图和柱形图的区别:

  1. 柱形图中用柱形的高度表示各类别的数值,横轴表示类别,宽度是固定的;
    直方图是用矩形的高度表示每一组的频数或频率,宽度则表示各组的组距,因此其高度与宽度均有意义。

2.直方图主要用于展示连续型数值型数据,所以各矩形通常是连续排列的;而柱形图主要用于展示分类型数据,常常是分开排列的。

饼图:
plt.pie(x, labels, autopct, shadow, startangle)
x:传入绘制用到的数据;
labels:用于设置饼图中每一个扇形外侧的显示说明文字;
autopct:用于设置饼图内百分比数据,可以使用format字符串或者format function,例如’%.1f%%’指小数点后保留1位小数;shadow:表示是否在饼图下面画阴影,默认值:False,即不画阴影;
startangle:设置起始绘制角度,默认图是从x轴正方向逆时针画起,如果设定startangle=90,则从y轴正方向画起。

# 按照类型变量'Category'对原数据分组,使用groupby函数,然后计算每组数据的数据量,使用size()函数,将输出的数据记录为num
num = menu.groupby('Category').size()
# TODO
# 绘制麦当劳各类型菜品数饼图,labels设置为num.index,每个扇形内百分比数据格式设置为:'%.1f%%', 起始绘制角度设置为190度
plt.pie(num,labels = num.index, autopct='%.1f%%',shadow=False,startangle=190)

箱线图:plt.boxplot(data, labels)

nutri_name = ['Total Fat (% Daily Value)','Saturated Fat (% Daily Value)',
              'Cholesterol (% Daily Value)','Sodium (% Daily Value)','Carbohydrates (% Daily Value)',
              'Vitamin A (% Daily Value)','Calcium (% Daily Value)','Iron (% Daily Value)']
# TODO
# 根据nutri_name列名称索引所需数据,将输出数据记录为nutri_data
nutri_data = menu[nutri_name]
# TODO
# 绘制箱线图,plt.boxplot默认按行数据绘制箱线图,所以data参数传入nutri_data的转置矩阵:nutri_data.T,labels设置为nutri_name
plt.boxplot(nutri_data.T, labels = nutri_name )

箱线图,也称为盒须图或者盒式图,是一种用作显示一组数据分散情况的统计图,它主要用于反映原始数据分布的特征,还可以进行多组数据分布特征的比较,图像中可以显示一组数据的最大值、最小值、中位数、及上下四分位数
在这里插入图片描述
矩形盒两端的位置分别对应数据的上下四分位数也就是Q1和Q3,所以矩形盒的长度Q3-Q1也叫作四分位距,或者四分位差,用IQR表示。
在数据分析中,往往会重点考虑数据列中中间部分的数字,通常会将前百分之二十五和后百分之二十五的数据切除掉,保留从Q1到Q3之间的数据。
矩形盒内部的线段表示中位数Q2。
从矩形盒的两端延伸出两条线,线的端点分别为Q1-1.5IQR和Q3+1.5IQR,这两个端点叫作异常值截断点,称其为内限。

落在内限之外的点为数据的异常值,所以这两个端点也表示在不考虑异常值的情况下数据的最大值和最小值。

Q1-3IQR和Q3+3IQR处的两个端点,称为外限,落在内限和外限之间的点被称作温和异常值,外限之外的异常值叫作极端异常值。

pandas也可直接绘制箱线图:直接调用boxplot()
在这里插入图片描述

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
图像识别技术在病虫害检测中的应用是一个快速发展的领域,它结合了计算机视觉和机器学习算法来自动识别和分类植物上的病虫害。以下是这一技术的一些关键步骤和组成部分: 1. **数据收集**:首先需要收集大量的植物图像数据,这些数据包括健康植物的图像以及受不同病虫害影响的植物图像。 2. **图像预处理**:对收集到的图像进行处理,以提高后续分析的准确性。这可能包括调整亮度、对比度、去噪、裁剪、缩放等。 3. **特征提取**:从图像中提取有助于识别病虫害的特征。这些特征可能包括颜色、纹理、形状、边缘等。 4. **模型训练**:使用机器学习算法(如支持向量机、随机森林、卷积神经网络等)来训练模型。训练过程中,算法会学习如何根据提取的特征来识别不同的病虫害。 5. **模型验证和测试**:在独立的测试集上验证模型的性能,以确保其准确性和泛化能力。 6. **部署和应用**:将训练好的模型部署到实际的病虫害检测系统中,可以是移动应用、网页服务或集成到智能农业设备中。 7. **实时监测**:在实际应用中,系统可以实时接收植物图像,并快速给出病虫害的检测结果。 8. **持续学习**:随着时间的推移,系统可以不断学习新的病虫害样本,以提高其识别能力。 9. **用户界面**:为了方便用户使用,通常会有一个用户友好的界面,显示检测结果,并提供进一步的指导或建议。 这项技术的优势在于它可以快速、准确地识别出病虫害,甚至在早期阶段就能发现问题,从而及时采取措施。此外,它还可以减少对化学农药的依赖,支持可持续农业发展。随着技术的不断进步,图像识别在病虫害检测中的应用将越来越广泛。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值