目录
参数选择
color颜色参考
‘b’ | 蓝色 | ‘y’ | 黄色 |
‘g’ | 绿色 | ‘k’ | 黑色 |
‘r’ | 红色 | ‘w’ | 白色 |
‘m’ | 品红色 | ||
‘c’ | 青色 |
linestyle参数可指定值:
实线:'-' | 杠点线:'-.' | |
虚线:'--' | 点线:':' |
marker参数可指定值:
'o' : 圆圈 | '^' : 上三角 | 'square' 或 's' : 方形 |
'+' : 加号 | 'v' : 下三角 | 'diamond' 或 'd' : 菱形 |
'*' : 星号 | '>' : 右三角 | 'pentagram' 或 'p' : 五角星(五角形) |
'.' : 点 | '<' : 左三角 | 'hexagram' 或 'h' : 六角星(六角形) |
'x' : 叉号 |
基本设置
设置标题和标签的字体属性
- 使用xlabel(),ylabel(),title()中的fontdict参数来设置字体属性
font = {'family': 'KaiTi', 'color': 'blue', 'size': 20}
plt.title('title position', loc="center", fontdict=font)
标题的位置设定
- 使用title()中的loc参数来设置标题位置
- 合法值:“left”,“right”,“center”。默认为"center"
plt.title('title position', loc="center")
指定要显示的网格线
- 使用grid()函数中的axis轴参数来设置
- 合法值:“x”,“y”,“both”。默认为"both"
plt.grid(axis='x')
设置网格线的线属性
plt.grid(color='color',linestyle='linestyle',linewidth='number')
绘图
折线图 plt.plot()函数基本用法
color 简写 c
linestyle 简写 ls
import matplotlib.pyplot as plt
x = [1, 2, 3, 4] # 横轴坐标
y = [1, 2, 3, 4] # 纵轴坐标
y1 = [4, 5, 6, 7] # 纵轴坐标2
plt.plot(x, y,
color='green', # 折线颜色
marker='o', # 折线图中添加圆点标记
linestyle='dashed', # 折线类型
linewidth=2, # 折线宽度
markersize=12, # 标记大小
label='line1') # 折线标签
plt.plot(x, y1, c='red', marker='*', ls='-.', linewidth=2, markersize=12, label='line2')
plt.xlabel('x') # x轴标签
plt.ylabel('y') # y轴标签
plt.title('Simple Plot') # 折线图标题
plt.legend() # 显示折线标签
plt.show() # 显示折线图
散点图 plt.scatter() 用法
调用方法:plt.scatter(x, y, s, c, marker, cmap, norm, alpha, linewidths, edgecolorsl)
参数说明:
x: x轴数据
y: y轴数据
s: 散点大小
c: 散点颜色
marker: 散点形状
cmap: 指定特定颜色图,该参数一般不用,有默认值
alpha: 散点的透明度
linewidths: 散点边框的宽度
edgecolors: 设置散点边框的颜色
import matplotlib.pyplot as plt
x = np.random.randn(100) # 横坐标
y = np.random.randn(100) # 纵坐标
#设置画布大小
plt.figure(figsize = (10, 6))
#设置颜色:根据颜色图和数字大小来控制点的颜色
colors = np.random.randn(100)
plt.scatter(x, y,
#大小
s = np.power(10*x + 20*y, 2), # 表示点的大小:(10x+20y)**2
c = colors, # 颜色
marker = '*', # 点的形状
cmap = 'rainbow', # 指定某个colormap值(颜色图)
edgecolors = 'r', # 散点边框颜色
alpha = 0.6) # 透明度
plt.title('彩虹五角星图',fontsize= 20,c = 'r')
plt.show()
显示多个图 subplots()
使用subplots函数来显示多张图
- subplots(几行,几列,第几张子图)
- 在绘制plot函数之前使用
-
import matplotlib.pyplot as plt x = [1, 2, 3, 4] # 横轴坐标 y = [1, 2, 3, 4] # 纵轴坐标 y1 = [4, 5, 6, 7] # 纵轴坐标2 plt.subplot(1, 2, 1) # 图一 plt.plot(x, y, color='green', marker='o', linestyle='dashed', linewidth=2, markersize=12, label='line1') plt.subplot(1, 2, 2) # 图二 plt.plot(x, y1, c='red', marker='*', ls='-.', linewidth=2, markersize=12, label='line2') plt.show() # 显示折线图
颜色图
Matplotlib模块有许多可用的颜色图,颜色图就像一个颜色列表,里面每一种颜色都有一个范围从0到100的值,"viridis"颜色图:
- 可以使用带有颜色图值的关键字参数cmap指定颜色图
- 此外还要创建一个包含值从0到100的数组,数量与散点图的点对应即可
-
import matplotlib.pyplot as plt x = np.array([1, 2, 3, 4, 5, 6]) y = x**2 colors = np.array([0, 20, 40, 60, 80, 100]) plt.scatter(x, y, c=colors, cmap='viridis') plt.colorbar() # 把颜色图展示在旁边 plt.show()
柱状图 bar()
import matplotlib.pyplot as plt
x = np.array(["A", "B", "C", "D", "E", "F"])
y = np.array([70, 10, 50, 100, 150, 40])
plt.bar(x, y)
plt.show()
水平柱状图
使barh()用函数即可
import matplotlib.pyplot as plt
x = np.array(["A", "B", "C", "D", "E", "F"])
y = np.array([70, 10, 50, 100, 150, 40])
plt.barh(x, y)
plt.show()
柱状图 设置条形宽度和高度
- bar() 使用关键字width来设置宽度
- barh() 使用关键字height来设置高度
饼图
使用pie()函数绘制饼图
import matplotlib.pyplot as plt
labels = ['a', 'b', 'c', 'd', 'e']
y = np.array([1, 2, 3, 2, 2])
plt.pie(y, labels=labels)
plt.show()
起始角度
- 默认起始角度位于x轴,但可以通过关键字startangle来更改
- startangle默认角度为0,以度为单位
分离指定的块
- 使用关键字explode实现分离一个块
- 必须是一个数组,每个块都要有值,值代表距离中心有多远
-
import matplotlib.pyplot as plt labels = ['a', 'b', 'c', 'd', 'e'] y = np.array([1, 2, 3, 2, 2]) my_explode = [0, 0, 0, 0, 0.5] # 指定分离块,及分离距离 plt.pie(y, labels=labels, explode=my_explode) plt.show()
阴影
将关键字shadows设置为True: shadows=True
显示占比
使用关键字 autopct 设置显示比例格式:autopct='%1.1f%%'
import matplotlib.pyplot as plt
labels = ['a', 'b', 'c', 'd', 'e']
y = np.array([1, 2, 3, 2, 2])
my_explode = [0, 0, 0, 0, 0.5] # 指定分离块,及分离距离
plt.pie(y, labels=labels, explode=my_explode, shadow=True, autopct='%1.1f%%')
plt.show()