python库——matplotlib

安装

pip install matplotlib

在jupyter notebook里安装

! pip install matplotlib

图像结构
在这里插入图片描述
不同的类型数据需要选择合适的图显示

折线图

plt.plot()

折线样式
在这里插入图片描述

  • color:折线的颜色
  • alpha:透明度
  • linestyle:样式
    ‘-’:实线
    ‘- -’:虚线
    ‘-.’:点虚线
    ’..’:点线
  • linewidth:折线的宽度
  • marker:折点样式
    '-' '--' '-.' ':' '.' ',' 'o' 'v' '^' '>' '<' '1' '2' '3' '4' 's' 'p' '*' 'h' 'H' '+' 'x' 'd' 'D' '|' '_'

设置图片
在这里插入图片描述

  • figsize:设置图片的长宽,单位英寸
  • dpi:每英寸像素点

保存图片:plt.savefig(),支持eps, jpeg, jpg, pdf, pgf, png, ps, raw, rgba, svg, svgz, tif, tiff格式

设置x轴的刻度:plt.xticks()
设置y轴的刻度:plt.yticks()
在这里插入图片描述

  • rotation:旋转角度

显示中文
matplotlib默认不显示中文,要自行设置

  1. 设置fontproperties
    plt.ylabel('温度',fontproperties='simHei')
    

在这里插入图片描述

  1. import matplotlib
    matplotlib.rcParams['font.sans-serif']=['SimHei']
    

一图多线

在这里插入图片描述
设置图例

plt.legend(prop,loc)
  • prop设置字体
  • loc设置位置,默认upper left,可改为upper right upper center lower left center leftetc.

散点图

plt.scatter()

在这里插入图片描述

设置网格

plt.grid()
  • linestyle网格样式
  • axis
  • alpha设置网格透明度

条形图

plt.bar()
  • width设置柱形的宽度
  • color设置颜色
    在这里插入图片描述

直方图

'''
统计250部电影的时长的分布状态(比如时长为100分钟到120分钟电影的数量,出现的频率)
'''
import numpy as np
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]

plt.figure(figsize=(16,6))

# 设置组距
distance = 2
# 计算组数
group_num = int((max(time) - min(time)) / distance)
h = plt.hist(time,bins=group_num)
plt.xticks(range(min(time),max(time)+2)[::2])
plt.yticks(range(np.int(min(h[0])),np.int(max(h[0]))+1))
plt.grid(linestyle='--',alpha=0.5)
plt.xlabel('电影时长',fontproperties='simHei')
plt.ylabel('电影数量',fontproperties='simHei')
plt.title('250部电影的时长的分布状态',fontproperties='simHei',size=18)

plt.show()

在这里插入图片描述

print(h)

(array([ 1., 1., 3., 1., 2., 0., 0., 1., 3., 2., 4., 7., 6.,
8., 11., 8., 18., 12., 13., 17., 12., 9., 13., 9., 11., 8.,
10., 10., 7., 13., 10., 4., 2., 6., 3., 1., 2., 0., 2.]), array([ 78., 80., 82., 84., 86., 88., 90., 92., 94., 96., 98.,
100., 102., 104., 106., 108., 110., 112., 114., 116., 118., 120.,
122., 124., 126., 128., 130., 132., 134., 136., 138., 140., 142.,
144., 146., 148., 150., 152., 154., 156.]), <BarContainer object of 39 artists>)

饼图

在这里插入图片描述

plt.pie()
  • size各部分大小
  • explode设置各部分突出
  • label各部分标签
  • labeldistance标签文本距圆心位置,1.1表示1.1倍半径
  • autopct 圆内文本
  • shadow是否有阴影
  • startangle起始角度,默认从0开始逆时针
  • pctdistance圆内文本距圆心距离返回值
  • l_text圆内文本,
  • p_text圆外文本
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
Kmeans聚类算法是一种无监督学习算法,用于将数据集划分为不同的簇。它是一个迭代算法,通过计算每个数据点与簇中心的距离,将数据点分配到最近的簇中心。然后,根据分配的数据点更新簇中心。重复这个过程,直到簇中心不再变化或达到预设的迭代次数。 下面是一个使用Python实现Kmeans聚类算法的示例: ``` python import numpy as np import matplotlib.pyplot as plt # 生成随机数据 np.random.seed(0) X = np.random.randn(100, 2) # 初始化K个簇中心 K = 3 centers = X[np.random.choice(len(X), K, replace=False)] # 迭代聚类 for i in range(10): # 计算每个数据点最近的簇中心 distances = np.linalg.norm(X[:, np.newaxis, :] - centers, axis=2) labels = np.argmin(distances, axis=1) # 更新簇中心 for k in range(K): centers[k] = np.mean(X[labels == k], axis=0) # 可视化聚类结果 colors = ['r', 'g', 'b'] for k in range(K): plt.scatter(X[labels == k, 0], X[labels == k, 1], c=colors[k]) plt.scatter(centers[:, 0], centers[:, 1], marker='*', s=200, c='#050505') plt.show() ``` 在这个例子中,我们生成了一个随机数据集,然后初始化了3个簇中心。然后,我们执行10次迭代,计算每个数据点最近的簇中心,并根据分配的数据点更新簇中心。最后,我们可视化聚类结果,其中每个簇用不同的颜色表示,簇中心用星号表示。 Kmeans聚类算法是一种简单有效的聚类算法,但它有一些缺点。例如,它需要预先指定簇的数量K,这可能不是很容易确定。此外,它对初始簇中心的选择很敏感,可能会导致陷入局部最优解。因此,在实际应用中,需要对它进行改进,例如Kmeans++算法和层次聚类算法等。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

叶柖

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值