个性签名:整个建筑最重要的是地基,地基不稳,地动山摇。而学技术更要扎稳基础,关注我,带你稳扎每一板块邻域的基础。
博客主页:啊四战斗霸的博客
收录专栏:Python三剑客之江湖云
南来的北往的,走过路过千万别错过,错过本篇,“精彩”可能与您失之交臂yo
Triple attack(三连击):Comment,Like and Collect—>Attention
pip install matplotlib
conda install matplotlib
https://matplotlib.org/stable/users/installing/index.html
import matplotlib.pyplot as plt
import numpy as np
x = np.linspace(0, 2 * np.pi, 200)
y = np.sin(x)
fig, ax = plt.subplots()
ax.plot(x, y)
plt.show()
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
# 这个show()方法主要是显示所绘制的图形,当我们绘制图形完成后,可以调用此方法。
# 图表窗口1 → plt.show()
plt.plot(np.random.rand(10))
plt.show()
# 直接生成图表
# 图表窗口2 → 魔法函数,嵌入图表
# 通过Jupyter的魔法命令%matplotlib inline 可以直接在jupyter notebook中展示图表,不需要每个图表都是用plt.show()来展现来
% matplotlib inline
x = np.random.randn(1000)
y = np.random.randn(1000)
plt.scatter(x,y)
# 直接嵌入图表,不用plt.show()
# 代表该图表对象
# 图表窗口3 → 魔法函数,弹出可交互的matplotlib窗口
% matplotlib notebook
s = pd.Series(np.random.randn(100))
s.plot(style = 'k--o',figsize=(10,5))
# 可交互的matplotlib窗口,不用plt.show()
# 可做一定调整
# 图表窗口4 → 魔法函数,弹出matplotlib控制台
% matplotlib qt5
df = pd.DataFrame(np.random.rand(50,2),columns=['A','B'])
df.hist(figsize=(12,5),color='g',alpha=0.8)
# 可交互性控制台
# 如果已经设置了显示方式(比如notebook),需要重启然后再运行魔法函数
# 网页嵌入的交互性窗口 和 控制台,只能显示一个
#plt.close()
# 关闭窗口
#plt.gcf().clear()
# 每次清空图表内内容
一个完整的matplotlib图像通常会包括以下四个层级,这些层级也被称为容器(container)
创建新图形的最简单方法是使用 pyplot:
fig = plt.figure() # 一个没有轴的空图形
fig, ax = plt.subplots() # 单轴图形,创建一个包含一个axes的figure
fig, axs = plt.subplots(2, 2) # 具有2x2轴网格的图形
Axis对象(注意区别 在 Axes 和 Axis )提供刻度和刻度标签 为轴中的数据提供比例。 每个 Axes还 有:
这些对象设置比例和限制并生成刻度(标记 在轴上)和刻度标签(标记刻度的字符串)。
图上可见的一切都是艺术家(甚至 Figure, Axes, 和 Axis对象)。 当图形被渲染时,所有的 艺术家被 画布 。 大多数艺术家都被绑在轴上; 这样的 艺术家不能被多个轴共享,也不能从一个轴移动到另一个轴。
b = np.matrix([[1, 2], [3, 4]])
b_asarray = np.asarray(b)
np.random.seed(19680801) # seed the random number generator.
data = {'a': np.arange(50),
'c': np.random.randint(0, 50, 50),
'd': np.random.randn(50)}
data['b'] = data['a'] + 10 * np.random.randn(50)
data['d'] = np.abs(data['d']) * 100
fig, ax = plt.subplots(figsize=(5, 2.7))
ax.scatter('a', 'b', c='c', s='d', data=data)
ax.set_xlabel('entry a')
ax.set_ylabel('entry b');
x = np.linspace(0, 2, 100) # 样本数据
# 注意,即使在OO风格中,我们也使用'pyplot.figure'创建图形的步骤
fig, ax = plt.subplots(figsize=(5, 2.7))
ax.plot(x, x, label='linear') # 在x,y轴上绘制一些数据
ax.plot(x, x**2, label='quadratic') # 在x,y轴上绘制更多数据
ax.plot(x, x**3, label='cubic') # 还有更多
ax.set_xlabel('x label') # 将x标签添加到轴
ax.set_ylabel('y label') # 将y标签添加到轴
ax.set_title("Simple Plot") # 将标题添加到轴
ax.legend(); # 添加一个图例
x = np.linspace(0, 2, 100) # 样本数据
plt.figure(figsize=(5, 2.7))
plt.plot(x, x, label='linear') # 在x,y轴上绘制一些数据。
plt.plot(x, x**2, label='quadratic') # etc.
plt.plot(x, x**3, label='cubic')
plt.xlabel('x label')
plt.ylabel('y label')
plt.title("Simple Plot")
plt.legend();
import matplotlib.pyplot as plt
import numpy as np
# 1 准备数据
x = np.linspace(0, 2, 100)
y = x**2
# 2 设置绘图样式,这一步不是必须的,样式也可以在绘制图像中进行设置
mpl.rc('lines', linewidth=4, linestyle='-.')
# 3 定义布局
fig, ax = plt.subplots()
# 4 绘制图像
ax.plot(x, y, label='linear')
# 5 添加标签,文字和图例
ax.set_xlabel('x label')
ax.set_ylabel('y label')
ax.set_title("Simple Plot")
ax.legend()
import matplotlib.pyplot as plt
import numpy as np
# 1 准备数据
x = np.linspace(-3, 3, 50)
y1 = 2*x + 1
y2 = x**2
# 2 定义图像窗口
plt.figure(num=3, figsize=(8, 5))
# 3 画图
plt.plot(x, y2)
plt.plot(x, y1, color='red', linewidth=1.0, linestyle='--')
# 4 定义坐标轴范围及名称
plt.xlim((-1, 2))
plt.ylim((-2, 3))
plt.xlabel('I am x')
plt.ylabel('I am y')
# 5 定义坐标轴刻度及名称
new_ticks = np.linspace(-1, 2, 5)
plt.xticks(new_ticks)
plt.yticks([-2, -1.8, -1, 1.22, 3],[r'$really\ bad$', r'$bad$', r'$normal$', r'$good$', r'$really\ good$'])
# 6 设置图像边框颜色
ax = plt.gca()
ax.spines['right'].set_color('none')
ax.spines['top'].set_color('none')
# 7 调整刻度及边框位置
ax.xaxis.set_ticks_position('bottom')
ax.spines['bottom'].set_position(('data', 0))
ax.yaxis.set_ticks_position('left')
ax.spines['left'].set_position(('data',0))
plt.show()