数据分析必备:一步步教你如何用matplotlib做数据可视化(9)

1、Matplotlib 饼图

饼图只能显示一系列数据。饼图在一个数据系列中显示项目的大小(称为楔形),与项目的总和成比例。饼图中的数据点显示为整个饼图的百分比。
Matplotlib API有一个pie()函数,它生成一个表示数组中数据的饼图。每个楔形的分数面积由x/sum(x)给出。如果sum(x<1,那么x的值直接给出小数区域,并且数组将不被标准化。结果饼图将有一个大小为1的空楔 - sum(x)。
如果图形和轴是方形,或者轴方向相等,则饼图看起来最佳。
参数
下表列出了饼图的参数 -
x - 数组式,楔形大小。
labels - 列表。一系列字符串,为每个楔形提供标签。
colors - 一系列matplotlib颜色参数,饼图将通过它循环。如果为None,将使用当前活动周期中的颜色。
Autopct - string用于用数值标记楔形。标签将放在楔子内。格式字符串将为fmt%pct。
以下代码使用pie()函数来显示计算机语言课程注册的学生列表的饼图。使用autopct参数,相应的百分比显示在相应的楔形内部,该参数设置为%1.2f%。
示例代码:

import matplotlib.pyplot as plt
import numpy as np
import math
plt.rcParams['font.sans-serif'] = ['SimHei'] # 步骤一(替换sans-serif字体)
plt.rcParams['axes.unicode_minus'] = False # 原文出自【立地货】,商业转载请联系作者获得授权,非商业请保留原文链接:
fig = plt.figure()
ax = fig.add_axes([0,0,1,1])
ax.axis('equal')
langs = ['C', 'C++', 'Java', 'Python', 'PHP']
students = [23,17,35,29,12]
ax.pie(students, labels = langs,autopct='%1.2f%%')
plt.show()

执行上面示例代码,得到以下结果
在这里插入图片描述

2、Matplotlib 散点图

散点图用于绘制水平轴和垂直轴上的数据点,以试图显示一个变量受另一个变量影响的程度。数据表中的每一行都由一个标记表示,该位置取决于其在X和Y轴上设置的列中的值。可以将第三个变量设置为对应于标记的颜色或大小,从而为该图添加另一个维度。
下面的脚本绘制了两种不同颜色的成绩范围与男孩和女孩成绩的散点图。
示例代码:

import matplotlib.pyplot as plt
import numpy as np
import math
import seaborn as sns
plt.rcParams['font.sans-serif'] = ['SimHei'] # 步骤一(替换sans-serif字体)
plt.rcParams['axes.unicode_minus'] = False # 原文出自【立地货】,商业转载请联系作者获得授权,非商业请保留原文链接:
girls_grades = [89, 90, 70, 89, 100, 80, 90, 100, 80, 34]
boys_grades = [30, 29, 49, 48, 100, 48, 38, 45, 20, 30]
grades_range = [10, 20, 30, 40, 50, 60, 70, 80, 90, 100]
#plt.legend(labels = ('男孩','女孩'),loc='upper left')
plt.scatter(grades_range, girls_grades, color='r', alpha=0.5)
plt.scatter(grades_range, boys_grades, color='b', alpha=0.5)
plt.title('散点图示例')#显示图表标题
plt.xlabel('分数范围')#x轴名称
plt.ylabel('分数等级')#y轴名称
plt.grid(False)#显示网格线
plt.legend(labels = ('男孩','女孩'),loc='upper right')
plt.show()

执行上面示例代码,得到以下结果
在这里插入图片描述

3、Matplotlib 轮廓图

轮廓图(有时称为“水平图”)是一种在二维平面上显示三维表面的方法。 它绘制了y轴上的两个预测变量X Y和轮廓的响应变量Z。 这些轮廓有时称为z切片或等响应值。
如果要查看Z如何随两个输入X和Y的变化而变化,则轮廓图是非常适用的,例如Z = f(X,Y)。 两个变量函数的等值线或等值线是函数具有常数值的曲线。
自变量x和y通常限于称为meshgrid的规则网格。 numpy.meshgrid使用x值数组和y值数组创建一个矩形网格。
Matplotlib API包含分别绘制轮廓线和填充轮廓的contour()和contourf()函数。 两个函数都需要三个参数x,y和z。

import numpy as np
import matplotlib.pyplot as plt
xlist = np.linspace(-3.0, 3.0, 100)
ylist = np.linspace(-3.0, 3.0, 100)
X, Y = np.meshgrid(xlist, ylist)
Z = np.sqrt(X**2 + Y**2)
fig,ax=plt.subplots(1,1)
cp = ax.contourf(X, Y, Z)
fig.colorbar(cp) # Add a colorbar to a plot
ax.set_title('Matplotlib轮廓图')
#ax.set_xlabel('x (cm)')
ax.set_ylabel('y (cm)')
plt.show()

执行上面示例代码,得到以下结果
在这里插入图片描述

  • 5
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值