Matplotlib学习笔记

声明:本文为借鉴其他帖子总结出来的学习笔记,不作它用。

Matplotlib

Python中类似Matlab的绘图工具

pyplot基础语法

Matplotlib中最基础的模块是pyplot。

创建画布

**plt.figure(figsize,facecolor)**

参数:
figsize:指定画布大小,像素,单位为英寸

figure是图片的载体,可以看做是画布,图片必须在画布的基础上进行创建在任何绘图之前,我们需要一个Figure对象,可以理解成我们需要一张画板才能开始绘图。

import matplotlib.pyplot as plt
fig = plt.figure(dpi=130)
plt.show

添加画布内容

plt.title(string)

在当前图形中 添加标题,可以指定标题的名称、位置、颜色、字体大小等参数.

plt.xlabel(string)

在当前图形中 添加x轴名称,可以指定标题的名称、位置、颜色、字体大小等参数.

plt.ylabel(string)

在当前图形中 添加y轴名称,可以指定标题的名称、位置、颜色、字体大小等参数.

plt.xlim(xmin,xmax)

指定当前图形x轴的范围,只能确定一个数值区间,而无法使用字符串标识。

plt.ylim(ymin,ymax)

指定当前图形y轴的范围,只能确定一个数值区间,而无法使用字符串标识。

plt.xticks()

指定x轴刻度的数目与取值

plt.yticks()

指定y轴刻度的数目与取值

plt.legend()

指定当前图形的图例,可以指定图例的大小、位置、标签

保存与展示图形

plt.savafig()

保存绘制的图片,可以指定图片的分辨率、边缘的颜色等参数

plt.show()

显示图形

简单图表的绘制

plot()绘制直线图

plt.plot(x,y,ls,lw,lable,color)

参数:
x,y:绘制数据
ls:线形
lw:线宽
lable:标签文本内容
color:颜色

示例:

import matplotlib.pyplot as plt
x=[1, 2, 3, 4, 5]
y=[2, 4, 6, 8, 10]
plt.plot(x, y)
plt.show()

Matplotlib学习笔记

plot()绘制曲线图

import numpy as np
import matplotlib.pyplot as plt

plt.figure(dpi=130)

x = np.linspace(0, 2 * np.pi, 100)

plt.plot(x, np.sin(x), 'g')
plt.show()

Matplotlib学习笔记

bar()绘制柱状图

plt.bar(x,height,width,bottom)

参数:
x:横坐标
y:纵坐标
width:柱宽

示例:单列柱状图绘制

import matplotlib.pyplot as plt
x = [1, 2, 3, 4, 5, 6]
y = [4, 5, 2, 3, 1, 5]
plt.bar(x,y, width = 0.8, align = 'center', color = 'blue')
plt.show()

Matplotlib学习笔记
示例:双列柱状图绘制
import matplotlib.pyplot as plt
import numpy as np

x = np.arange(3)
y = [5, 2, 3]
y1 = [1, 10, 7]

bar_width = 0.3
tick_label = ["A", "B", "C"]
plt.bar(x, y, align="center", color="c", width=bar_width, label="title_A", alpha=0.5)
plt.bar(x + bar_width, y1, align="center", color="b", width=bar_width, label="title_B", alpha=0.5)
plt.xticks(x + bar_width / 2, tick_label)
plt.show()

Matplotlib学习笔记
示例:数据对比柱状图绘制
import numpy as np
import matplotlib.pyplot as plt

plt.figure(figsize=(9, 5))

plt.rcParams['font.sans-serif'] = 'SimHei'
plt.rcParams['axes.unicode_minus'] = False

x = range(15)
np.random.seed(123)
y1 = np.random.random(15)
y2 = np.random.random(15)

plt.bar(x, y1, facecolor='#FFF68F')
plt.bar(x, -y2, facecolor='#9999FF')

for i, j in zip(x, y1):
    plt.text(i, j, '%.2f' % j, ha='center', va='bottom')
for i, j in zip(x, y2):
    plt.text(i, -j, '%.2f' % j, ha='center', va='top')

plt.ylim(-1.2, 1.2)
plt.title('数据对比')
plt.show()

Matplotlib学习笔记

barh()绘制横向条形图

plt.barh()

示例:绘制单列条形图

import matplotlib.pyplot as plt
x = [1, 2, 3, 4]
y = [15, 62, 48, 83]
plt.barh(x, y, align = 'center', color = 'blue')
plt.show()

Matplotlib学习笔记
示例:绘制双列条形图
import matplotlib.pyplot as plt
import numpy as np

x = np.arange(4)
y = [5, 1, 4, 9]
y1 = [1, 7, 3, 7]

bar_width = 0.4
tick_label = ["A", "B", "C", "D"]

plt.barh(x, y, bar_width, align="center", color="c", label="title_A", alpha=1)
plt.barh(x + bar_width, y1, bar_width, align="center", color="b", label="title_B", alpha=1)
plt.yticks(x + bar_width / 2, tick_label)
plt.legend()
plt.show()

Matplotlib学习笔记

pie()绘制饼图

Matplotlib学习笔记
示例:绘制十等分饼图
import matplotlib.pyplot as plt
import numpy as np
plt.figure(figsize=(5, 5))

z = np.ones(10)
plt.pie(z, autopct='%.2f%%', explode=[0.1] + [0]*9, labels=list('ABCDEFGHIJ'), labeldistance=1.1)
plt.show()

Matplotlib学习笔记
示例:不同数据饼图的绘制
import matplotlib.pyplot as plt

plt.figure(figsize=(5, 5))
x = [21, 15, 9,69, 84, 17]

plt.pie(x, autopct='%.2f%%', labels=list('ABCDEF'))
plt.show()

Matplotlib学习笔记

scatter()绘制散点图

plt.scatter(x,y,c,marker,label,color)

参数:
x,y:相同长度的序列
c:单个颜色字符或颜色序列
marker:标记的样式,默认为’o’
label:标签文本内容
color:颜色

示例:绘制sin散点图

import numpy as np
import matplotlib.pyplot as plt
plt.figure(figsize=(9, 5))

plt.rcParams['font.sans-serif'] = 'SimHei'
plt.rcParams['axes.unicode_minus'] = False

x = np.linspace(0, 2*np.pi, 100)
y = np.sin(x) + np.random.rand(100)

plt.title('sin散点图')
plt.scatter(x, y)
plt.show()

Matplotlib学习笔记
示例:双数据散点图绘制
import numpy as np
import matplotlib.pyplot as plt

x1 = np.random.randn(30)
x2 = np.random.randn(30)
plt.figure(1)
plt.plot(x1, 'bo', markersize=15)
plt.plot(x2, 'ro', ms=8,)
plt.show()

Matplotlib学习笔记

subplot()绘制子图

示例:通过plt的subplot绘制子图

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt

plt.figure(figsize=(15, 15))

x=np.arange(1,100)
plt.subplot(221)
plt.plot(x,x*x)

plt.subplot(222)
plt.scatter(np.arange(0,10), np.random.rand(10))

plt.subplot(223)
plt.pie(x=[15,30,45,10],labels=list('ABCD'),autopct='%.0f%%',explode=[0,0.05,0,0])

plt.subplot(224)
plt.bar(['a','b','c','d','e'],[20,15,35,25,20],color='r')
plt.show()

Matplotlib学习笔记
示例:通过plt的add_subplot绘制子图
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt

fig=plt.figure(figsize=(15, 15))

x=np.arange(1,100)
ax1=fig.add_subplot(221)
ax1.plot(x,x*x)

ax2=fig.add_subplot(222)
ax2.scatter(np.arange(0,10), np.random.rand(10))

ax3=fig.add_subplot(223)
ax3.pie(x=[15,30,45,10],labels=list('ABCD'),autopct='%.0f%%',explode=[0,0.05,0,0])

ax4=fig.add_subplot(224)
ax4.bar(['a','b','c','d','e'],[20,15,35,25,20],color='r')
plt.show()

Matplotlib学习笔记
示例:多个函数的子图绘制
import numpy as np
import matplotlib.pyplot as plt

fig, ax = plt.subplots(2, 2, sharex=False, sharey=False)

x = np.arange(-2 * np.pi, 2 * np.pi, 0.2)
sin_x = np.sin(x)
ax[0][0].plot(x, sin_x)
ax[0][0].set(title='y = sin(x)')

cos_x = np.cos(x)
ax[0][1].plot(x, cos_x, 'r')
ax[0][1].set(title='y = cos(x)')

x = np.arange(1, 100, 0.01)
log_x = np.log(x)
ax[1][0].plot(x, log_x, 'g')
ax[1][0].set(title='y = log(x)')

x = np.arange(-1, 1, 0.01)
exp_x = np.exp(x)
ax[1][1].plot(x, exp_x, 'y')
ax[1][1].set(title='y = exp(x)')

plt.subplots_adjust(wspace=0.4, hspace=0.6)
plt.savefig('subplot.png')
plt.show()

Matplotlib学习笔记

其他相关内容

线条颜色的设置

‘b’蓝色 ‘r’红色 ‘c’青色 ‘m’品红 ‘y’黄色 ‘k’黑色
‘g’绿色 ‘w’白色

本文主要引用了一下帖子的内容:

Matplotlib库介绍

1 使用matplotlib的python数据可视化——简单图表的绘制(线形图、柱形图、饼图、条形图、散点图和子图)

Original: https://blog.csdn.net/PuddleRubbish/article/details/127525497
Author: 趴抖
Title: Matplotlib学习笔记

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/767598/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球