Matplotlib 散点图
使用pyplot中的scatter方法来绘制散点图
scatter()方法参数如下:
matplotlib.pyplot.scatter(x, y, s=None, c=None, marker=None, cmap=None, norm=None, vmin=None, vmax=None, alpha=None, linewidths=None, *, edgecolors=None, plotnonfinite=False, data=None, **kwargs)
参数说明:
x,y: 长度相同的numpy数组,分别对应x轴和y轴的坐标
s: 点的大小,默认20,也可以是数组,数组每个元素对应点的大小
c: 点的颜色,默认蓝色’b’,也可以是RGB或RGBA二维数组,或0-100的数字数组(配合cmap参数来使用)
marker: 点的样式,默认小圆圈’o’,其余值参考上一篇plot方法的参数
cmap: Colormap,默认 None,标量或者是一个 colormap 的名字,只有 c 是一个浮点数数组的时才使用。如果没有申明就是 image.cmap。
norm:Normalize,默认 None,数据亮度在 0-1 之间,只有 c 是一个浮点数的数组的时才使用。
vmin,vmax::亮度设置,在 norm 参数存在时会忽略。
alpha::透明度设置,0-1 之间,默认 None,即不透明。
linewidths::标记点的长度。
edgecolors::颜色或颜色序列,默认为 ‘face’,可选值有 ‘face’, ‘none’, None。
plotnonfinite::布尔值,设置是否使用非限定的 c ( inf, -inf 或 nan) 绘制点。
**kwargs::其他参数。
示例1
import matplotlib.pyplot as plt
import numpy as np
x = np.array(range(10))
y = np.array([1, 4, 9, 16, 7, 11, 23, 30, 28, 15])
# 点的大小
s = np.array([10, 20, 30, 40, 50, 60, 70, 80, 10, 40])
# 点的颜色
c = np.array(['red', 'green', 'yellow', 'gray', 'pink', 'blue', 'black', 'beige', 'orange', 'purple'])
plt.scatter(x, y, s, c=c, marker='o', alpha=0.5)
plt.show()

示例2
import matplotlib.pyplot as plt
import numpy as np
# 随机数生成器的种子
np.random.seed(19680801)
N = 50
x = np.random.rand(N)
y = np.random.rand(N)
# 点的大小
area = (30 * np.random.rand(N)) ** 2
# 点的颜色
colors = np.random.rand(N) * 100
plt.scatter(x, y, s=area, c=colors, marker='o', cmap='Set1', alpha=0.5)
plt.show()

Matplotlib 柱形图
使用pyplot中的bar()方法来绘制水平柱形图,barh()方法来绘制垂直方向的柱形图
matplotlib.pyplot.bar(x, height, width=0.8, bottom=None, *, align='center', data=None, **kwargs)
参数说明
x:数组,柱形图的 x 轴数据。
height:浮点型数组或数,柱形图的高度,用于垂直柱形图。
width:浮点型数组或数,柱形图的宽度,用于水平柱形图。
bottom:浮点型数组,底座的 y 坐标,默认 0。
align:柱形图与 x 坐标的对齐方式,‘center’ 以 x 位置为中心,这是默认值。 ‘edge’:将柱形图的左边缘与 x 位置对齐。要对齐右边缘的条形,可以传递负数的宽度值及 align=‘edge’。
color: 参考散点图中的传参
**kwargs::其他参数。
示例1
import matplotlib.pyplot as plt
import numpy as np
# 设置字体
plt.rcParams['font.family'] = ['Microsoft YaHei']
x = np.array(['1990年', '1991年', '1992年', '1993年', '1994年', '1995年', '1996年', '1997年', '1998年', '1999年', '2000年'])
y = np.array([1.89, 2.21, 2.73, 3.58, 4.89, 6.16, 7.22, 8.02, 8.59, 9.14, 10.13])
# 设置y轴的标题
plt.ylabel("单位(万亿元)")
# 设置x轴下标的倾斜度
plt.xticks(rotation=-45)
# 设置图标的标题
plt.title("90年代中国GDP")
# 绘图
plt.bar(x, y)
plt.show()

Matplotlib 饼图
用pyplot中的pie()方法绘制饼图
matplotlib.pyplot.pie(x, explode=None, labels=None, colors=None, autopct=None, pctdistance=0.6, shadow=False, labeldistance=1.1, startangle=0, radius=1, counterclock=True, wedgeprops=None, textprops=None, center=0, 0, frame=False, rotatelabels=False, *, normalize=None, data=None)[source]
参数说明:
- x:浮点型数组或列表,用于绘制饼图的数据,表示每个扇形的面积。
- explode:数组,表示各个扇形之间的间隔,默认值为0。
- labels:列表,各个扇形的标签,默认值为 None。
- colors:数组,表示各个扇形的颜色,默认值为 None。
- autopct:设置饼图内各个扇形百分比显示格式,%d%% 整数百分比,%0.1f 一位小数, %0.1f%% 一位小数百分比, %0.2f%% 两位小数百分比。
- labeldistance:标签标记的绘制位置,相对于半径的比例,默认值为 1.1,如 <1则绘制在饼图内侧。
- pctdistance::类似于 labeldistance,指定 autopct 的位置刻度,默认值为 0.6。
- shadow::布尔值 True 或 False,设置饼图的阴影,默认为 False,不设置阴影。
- radius::设置饼图的半径,默认为 1。
- startangle: 用于指定饼图的起始角度,默认为从 x 轴正方向逆时针画起,如设定 =90 则从 y 轴正方向画起。
- counterclock:布尔值,用于指定是否逆时针绘制扇形,默认为 True,即逆时针绘制,False 为顺时针。
- wedgeprops: 字典类型,默认值 None。用于指定扇形的属性,比如边框线颜色、边框线宽度等。例如:wedgeprops={‘linewidth’:5} 设置 wedge 线宽为5。
- textprops: 字典类型,用于指定文本标签的属性,比如字体大小、字体颜色等,默认值为 None。
- center: 浮点类型的列表,用于指定饼图的中心位置,默认值:(0,0)。
- **frame: **布尔类型,用于指定是否绘制饼图的边框,默认值:False。如果是 True,绘制带有表的轴框架。
- rotatelabels: 布尔类型,用于指定是否旋转文本标签,默认为 False。如果为 True,旋转每个 label 到指定的角度。
- data:用于指定数据。如果设置了 data 参数,则可以直接使用数据框中的列作为 x、labels 等参数的值,无需再次传递。
- 除此之外,pie() 函数还可以返回三个参数:
wedges:一个包含扇形对象的列表。texts:一个包含文本标签对象的列表。autotexts:一个包含自动生成的文本标签对象的列表。
示例
import matplotlib.pyplot as plt
# 设置字体
plt.rcParams['font.family'] = ['Microsoft YaHei']
# 数据
x = [29.20, 19.40, 15.10, 14.60, 11.40, 10.30]
# 饼图标签
labels = ['华为', 'VIVO', '苹果', 'OPPO', '小米', '荣耀']
# 突出显示
explode = (0.1, 0, 0, 0, 0, 0)
# 饼图的颜色
colors = ['yellowgreen', 'gold', 'lightskyblue', 'lightcoral', 'gray', 'purple']
# 标题
plt.title("中国市场手机品牌占比")
plt.pie(x, labels=labels, explode=explode, shadow=True, startangle=90, colors=colors)
plt.show()

Matplotlib 直方图
用pyplot中的hist()方法来绘制直方图,直方图跟其他图不一样,有统计的效果。比如入参数据是一个班级某一门课程的成绩集合,它会把这些数据进行一个统计,50-60分的学生数,60-70分的学生成绩数等等
matplotlib.pyplot.hist(x, bins=None, range=None, density=False, weights=None, cumulative=False, bottom=None, histtype='bar', align='mid', orientation='vertical', rwidth=None, log=False, color=None, label=None, stacked=False, **kwargs)
参数说明:
x:表示要绘制直方图的数据,可以是一个一维数组或列表。bins:可选参数,表示直方图的箱数。默认为10。range:可选参数,表示直方图的值域范围,可以是一个二元组或列表。默认为None,即使用数据中的最小值和最大值。density:可选参数,表示是否将直方图归一化。默认为False,即直方图的高度为每个箱子内的样本数,而不是频率或概率密度。weights:可选参数,表示每个数据点的权重。默认为None。cumulative:可选参数,表示是否绘制累积分布图。默认为False。bottom:可选参数,表示直方图的起始高度。默认为None。histtype:可选参数,表示直方图的类型,可以是’bar’、‘barstacked’、‘step’、‘stepfilled’等。默认为’bar’。align:可选参数,表示直方图箱子的对齐方式,可以是’left’、‘mid’、‘right’。默认为’mid’。orientation:可选参数,表示直方图的方向,可以是’vertical’、‘horizontal’。默认为’vertical’。rwidth:可选参数,表示每个箱子的宽度。默认为None。log:可选参数,表示是否在y轴上使用对数刻度。默认为False。color:可选参数,表示直方图的颜色。label:可选参数,表示直方图的标签。stacked:可选参数,表示是否堆叠不同的直方图。默认为False。**kwargs:可选参数,表示其他绘图参数。
示例
import matplotlib.pyplot as plt
import numpy as np
# 绘制一个09级学生的物理期末考试成绩直方图
# 设置字体
plt.rcParams['font.family'] = ['Microsoft YaHei']
# 成绩数据集
data = np.array(
[45, 48, 52, 54, 54, 56, 60, 62, 64, 68, 68, 70, 72, 75, 77, 78, 79, 80, 80, 80, 84, 85, 86, 87, 88, 90, 95,
98, 100])
# 因为学生成绩从40-100分中分布,所以用range指定数据返回,每10分做一个汇总,bins箱数设置成6
plt.hist(data, bins=6, range=(40, 100), color='gray',histtype='stepfilled')
plt.title("09级学生物理期末考试成绩")
plt.xlabel("考试分数")
plt.ylabel("人数")
plt.show()

7089

被折叠的 条评论
为什么被折叠?



