2024年最新硬肝!超详细matplotlib基础介绍!!!(1)

  • 指定坐标范围 and 设置坐标轴刻度

import numpy as np

import matplotlib.pyplot as plt

x = np.linspace(-np.pi, np.pi, 100) # 在区间内生成21个等差数

y = np.sin(x)

linear_y = 0.2 * x + 0.1

plt.figure(figsize = (8, 6)) # 自定义窗口的大小

plt.plot(x, y)

plt.plot(x, linear_y, color = “red”, linestyle = ‘–’) # 自定义颜色和表示方式

plt.title(‘y = sin(x) and y = 0.2x + 0.1’) # 定义该曲线的标题

plt.xlabel(‘x’) # 定义横轴标签

plt.ylabel(‘y’) # 定义纵轴标签

plt.xlim(-np.pi, np.pi)

plt.ylim(-1, 1)

重新设置x轴的刻度

plt.xticks(np.linspace(-np.pi, np.pi, 5))

x_value_range = np.linspace(-np.pi, np.pi, 5)

x_value_strs = [r’ π \pi π’, r’ − π 2 -\frac{\pi}{2} 2π‘, r’ 0 0 0’, r’ π 2 \frac{\pi}{2} 2π‘, r’ π \pi π’]

plt.xticks(x_value_range, x_value_strs)

plt.show() # 显示图像

  • 定义原点在中心的坐标轴

import numpy as np

import matplotlib.pyplot as plt

x = np.linspace(-np.pi, np.pi, 100)

y = np.sin(x)

linear_y = 0.2 * x + 0.1

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

plt.plot(x, y)

plt.plot(x, linear_y, color = “red”, linestyle = ‘–’)

plt.title(‘y = sin(x) and y = 0.2x + 0.1’)

plt.xlabel(‘x’)

plt.ylabel(‘y’)

plt.xlim(-np.pi, np.pi)

plt.ylim(-1, 1)

plt.xticks(np.linspace(-np.pi, np.pi, 5))

x_value_range = np.linspace(-np.pi, np.pi, 5)

x_value_strs = [r’ π \pi π’, r’ − π 2 -\frac{\pi}{2} 2π‘, r’ 0 0 0’, r’ π 2 \frac{\pi}{2} 2π‘, r’ π \pi π’]

plt.xticks(x_value_range, x_value_strs)

ax = plt.gca() # 获取坐标轴

ax.spines[‘right’].set_color(‘none’) # 隐藏上方和右方的坐标轴

ax.spines[‘top’].set_color(‘none’)

设置左方和下方坐标轴的位置

ax.spines[‘bottom’].set_position((‘data’, 0)) # 将下方的坐标轴设置到y = 0的位置

ax.spines[‘left’].set_position((‘data’, 0)) # 将左方的坐标轴设置到 x = 0 的位置

plt.show() # 显示图像

  • legend图例

使用xticks()和yticks()函数替换轴标签,分别为每个函数传入两列数值。第一个列表存储刻度的位置,第二个列表存储刻度的标签。

import numpy as np

import matplotlib.pyplot as plt

x = np.linspace(-np.pi, np.pi, 100)

y = np.sin(x)

linear_y = 0.2 * x + 0.1

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

为曲线加上标签

plt.plot(x, y, label = “y = sin(x)”)

plt.plot(x, linear_y, color = “red”, linestyle = ‘–’, label = ‘y = 0.2x + 0.1’)

plt.title(‘y = sin(x) and y = 0.2x + 0.1’)

plt.xlabel(‘x’)

plt.ylabel(‘y’)

plt.xlim(-np.pi, np.pi)

plt.ylim(-1, 1)

plt.xticks(np.linspace(-np.pi, np.pi, 5))

x_value_range = np.linspace(-np.pi, np.pi, 5)

x_value_strs = [r’ π \pi π’, r’ − π 2 -\frac{\pi}{2} 2π‘, r’ 0 0 0’, r’ π 2 \frac{\pi}{2} 2π‘, r’ π \pi π’]

plt.xticks(x_value_range, x_value_strs)

ax = plt.gca()

ax.spines[‘right’].set_color(‘none’)

ax.spines[‘top’].set_color(‘none’)

ax.spines[‘bottom’].set_position((‘data’, 0))

ax.spines[‘left’].set_position((‘data’, 0))

将曲线的信息标识出来

plt.legend(loc = ‘lower right’, fontsize = 12)

plt.show()

legend方法中的loc 参数可选设置

| 位置字符串 | 位置编号 | 位置表述 |

| — | — | — |

| ‘best’ | 0 | 最佳位置 |

| ‘upper right’ | 1 | 右上角 |

| ‘upper left’ | 2 | 左上角 |

| ‘lower left’ | 3 | 左下角 |

| ‘lower right’ | 4 | 右下角 |

| ‘right’ | 5 | 右侧 |

| ‘center left’ | 6 | 左侧垂直居中 |

| ‘center right’ | 7 | 右侧垂直居中 |

| ‘lower center’ | 8 | 下方水平居中 |

| ‘upper center’ | 9 | 上方水平居中 |

| ‘center’ | 10 | 正中间 |

二、柱状图


使用的方法:plt.bar

import numpy as np

import matplotlib.pyplot as plt

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

x = np.array([1, 2, 3, 4, 5, 6, 7, 8])

y = np.array([3, 5, 7, 6, 2, 6, 10, 15])

plt.plot(x, y, ‘r’, lw = 5) # 指定线的颜色和宽度

x = np.array([1, 2, 3, 4, 5, 6, 7, 8])

y = np.array([13, 25, 17, 36, 21, 16, 10, 15])

plt.bar(x, y, 0.2, alpha = 1, color=‘b’) # 生成柱状图,指明图的宽度,透明度和颜色

plt.show()

有的时候柱状图会出现在x轴的俩侧,方便进行比较,代码实现如下:

import numpy as np

import matplotlib.pyplot as plt

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

n = 12

x = np.arange(n) # 按顺序生成从12以内的数字

y1 = (1 - x / float(n)) * np.random.uniform(0.5, 1.0, n)

y2 = (1 - x / float(n)) * np.random.uniform(0.5, 1.0, n)

设置柱状图的颜色以及边界颜色

#+y表示在x轴的上方 -y表示在x轴的下方

plt.bar(x, +y1, facecolor = ‘#9999ff’, edgecolor = ‘white’)

plt.bar(x, -y2, facecolor = ‘#ff9999’, edgecolor = ‘white’)

plt.xlim(-0.5, n) # 设置x轴的范围,

plt.xticks(()) # 可以通过设置刻度为空,消除刻度

plt.ylim(-1.25, 1.25) # 设置y轴的范围

plt.yticks(())

plt.text()在图像中写入文本,设置位置,设置文本,ha设置水平方向对其方式,va设置垂直方向对齐方式

for x1, y in zip(x, y2):

plt.text(x1, -y - 0.05, ‘%.2f’ % y, ha = ‘center’, va = ‘top’)

for x1, y in zip(x, y1):

plt.text(x1, y + 0.05, ‘%.2f’ % y, ha = ‘center’, va = ‘bottom’)

plt.show()

三、散点图

import numpy as np

import matplotlib.pyplot as plt

N = 50

x = np.random.rand(N)

y = np.random.rand(N)

colors = np.random.rand(N)

area = np.pi * (15 * np.random.rand(N))**2

plt.scatter(x, y, s = area,c = colors, alpha = 0.8)

plt.show()

四、等高线图


import matplotlib.pyplot as plt

import numpy as np

def f(x, y):

return (1 - x / 2 + x ** 5 + y ** 3) * np.exp(-x ** 2 - y ** 2)

n = 256

x = np.linspace(-3, 3, n)

y = np.linspace(-3, 3, n)

X, Y = np.meshgrid(x, y) # 生成网格坐标 将x轴与y轴正方形区域的点全部获取

line_num = 10 # 等高线的数量

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

#contour 生成等高线的函数

#前俩个参数表示点的坐标,第三个参数表示等成等高线的函数,第四个参数表示生成多少个等高线

C = plt.contour(X, Y, f(X, Y), line_num, colors = ‘black’, linewidths = 0.5) # 设置颜色和线段的宽度

plt.clabel(C, inline = True, fontsize = 12) # 得到每条等高线确切的值

填充颜色, cmap 表示以什么方式填充,hot表示填充热量的颜色

plt.contourf(X, Y, f(X, Y), line_num, alpha = 0.75, cmap = plt.cm.hot)

plt.show()

五、处理图片


import matplotlib.pyplot as plt

import matplotlib.image as mpimg # 导入处理图片的库

import matplotlib.cm as cm # 导入处理颜色的库colormap

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

img = mpimg.imread(‘image/fuli.jpg’)# 读取图片

print(img) # numpy数据

print(img.shape) #

plt.imshow(img, cmap = ‘hot’)

plt.colorbar() # 得到颜色多对应的数值

plt.show()

[[[ 11 23 63]

[ 12 24 64]

[ 1 13 55]

[ 1 12 42]

[ 1 12 42]

[ 1 12 42]]

[[ 19 31 71]

[ 3 15 55]

[ 0 10 52]

[ 0 11 39]

[ 0 11 39]

[ 0 11 39]]

[[ 22 34 74]

[ 3 15 55]

[ 7 19 61]

[ 0 11 39]

[ 0 11 39]

[ 0 11 39]]

[[ 84 125 217]

一、Python所有方向的学习路线

Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照下面的知识点去找对应的学习资源,保证自己学得较为全面。

img
img

二、Python必备开发工具

工具都帮大家整理好了,安装就可直接上手!img

三、最新Python学习笔记

当我学到一定基础,有自己的理解能力的时候,会去阅读一些前辈整理的书籍或者手写的笔记资料,这些笔记详细记载了他们对一些技术点的理解,这些理解是比较独到,可以学到不一样的思路。

img

四、Python视频合集

观看全面零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。

img

五、实战案例

纸上得来终觉浅,要学会跟着视频一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。img

六、面试宝典

在这里插入图片描述

在这里插入图片描述

简历模板在这里插入图片描述

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化学习资料的朋友,可以戳这里无偿获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

  • 3
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值