matplotlib


视频学习地址

安装

pip install matplotlib

官网案例图形

常用统计图对比:

  • 折线图:以折线的上升或者下降来表示统计数量的增减变化的统计图
    • 特点:能够显示数据的变化趋势,反映事物的变化情况(变化)
  • 直方图:由一系列高度不等的纵向条纹或线段表示数据分布的情况。一般用横轴表示数据范围,纵轴表示分布情况
    • 特点:绘制连续性的数据,詹氏一族或者多组数据的分布情况(统计)
  • 条形图:排列在工作表的列或行中的数据可以绘制到条形图中。
    • 特点:绘制离散的数据,能够一眼看出各个数据的大小,比较数据之间的差别。(统计)
  • 散点图 :用两组数据构成多个坐标点,考察坐标点的分布,判断两变量之间是否存在某种关联或者总结坐标点的分布模式
    • 特点:判断变量之间是否存在数量关联趋势,展示离群点(分布规律)

折线图

  • 简单示例
from matplotlib import pyplot as plt

x = range(2, 26, 2)
y = [15,13,14.5,17,20,25,26,26,27,22,18,15]

plt.plot(x, y)

plt.show()

为折线图添加更多元素(修改默认元素)

  1. 设置图片大小(想要一个高清无码大图)
from matplotlib import pyplot as plt

fig = plt.figure(figsize=(20.8), dpi=80)
    # figure图形图标的意思,在这里值得就是画的图,figsize,宽高,dpi像素,dpi每英寸的像素
    # 通过实例化一个fihure并且传递参数,能够在后台自动使用改figure实例
    # 在图像模糊的时候可以传入dpi参数,让图片更加清晰
  1. 保存到本地
  2. 描述信息,比如x轴和y轴表示什么,这个图表示什么
  3. 调整x或者y的刻度的间距
  4. 标记处特殊的点(比如告诉别人最高点和最低点)
  5. 给图片添加一个水印(防伪,防止盗用)
from matplotlib import pyplot as plt



x = range(2, 26, 2)
y = [15,13,14.5,17,20,25,26,26,27,22,18,15]

# 设置图片大小
plt.figure(figsize=(20,8), dpi=80)

# 绘图
plt.plot(x, y)

# 绘制x轴的刻度
plt.xticks(x) # 原生x值  # 自定义,传列表即可,[range(1,24)],

# 设置y轴的刻度
plt.xticks(range(min(y), max(y)+1))

# 保存图片,可以保存为svg这种矢量图格式,放大不会有锯齿
plt.savefig('./1.png')

plt.show()

显示中文刻度

matpoltlib默认不支持中文字符,外国人写的东西

import random

from matplotlib import pyplot as plt
from matplotlib import font_manager

# 方式一(失败率高):
# font = {'family': 'MicroSoft YaHei',
#         'weight': 'bold',
#         'size': 'larger'}
#
# matplotlib.rc("font", **font)
# # matplotlib.rc("font", family='MicroSoft YaHei',weight='bold')

# 方式二:
my_font = font_manager.FontProperties(fname=r'c:\windows\fonts\msyh.ttc')

x = range(0,120)
y = [random.randint(20, 35) for i in range(120)]

plt.figure(figsize=(20, 8),dpi=80)

plt.plot(x,y)

# 调整x轴的刻度
_x = x[::3]
_xtick_labels = ['哈哈,{}'.format(i) for i in _x]
plt.xticks(_x, _xtick_labels, rotation=45, fontproperties=my_font)


# 添加描述信息
plt.xlabel("时间",fontproperties=my_font)
plt.ylabel("温度",fontproperties=my_font)
plt.title("时间温度图",fontproperties=my_font)


plt.show()

练习1:
x轴表示年龄,11-30岁
y轴表示女友数量

from matplotlib import pyplot as plt, font_manager


my_font = font_manager.FontProperties(fname=r'c:\windows\fonts\msyh.ttc')

y = [1,0,1,1,2,4,3,2,3,4,4,5,6,5,4,3,3,1,1,1]
x = range(11,31)


plt.figure(figsize=(20,8),dpi=80)

plt.plot(x,y)


# 设置x轴刻度
_xtrick_labels = [f'{i}岁' for i in x]
plt.xticks(x, _xtrick_labels, fontproperties=my_font)
plt.yticks(range(0,9))


# 绘制网格
plt.grid(alpha=0.4)

plt.show()

练习2:
添加两个图形

from matplotlib import pyplot as plt, font_manager


my_font = font_manager.FontProperties(fname=r'c:\windows\fonts\msyh.ttc')

y_1 = [1,0,1,1,2,4,3,2,3,4,4,5,6,5,4,3,3,1,1,1]
y_2 = [1,0,3,1,2,2,3,3,2,1,2,1,1,1,1,1,1,1,1,1]
x = range(11,31)


plt.figure(figsize=(20,8),dpi=80)

plt.plot(x,y_1, label='自己',color="blue",linestyle=':', alpha=0.5)  # 颜色,线条类型,透明度
plt.plot(x,y_2, label='另一个')


# 设置x轴刻度
_xtrick_labels = [f'{i}岁' for i in x]
plt.xticks(x, _xtrick_labels, fontproperties=my_font)
plt.yticks(range(0,9))

# 添加图例
plt.legend(prop=my_font,loc="upper left") # loc表示图例位置,默认右上角 注意:设置字体,是prop不是properies,只有这里是例外


# 绘制网格
plt.grid(alpha=0.4)

plt.show()
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值