(2)设置图例字体大小

fontsize : int or float or {‘xx-small’, ‘x-small’, ‘small’, ‘medium’, ‘large’, ‘x-large’, ‘xx-large’}

(3)设置图例边框及背景

plt.legend(loc='best',frameon=False) #去掉图例边框
plt.legend(loc='best',edgecolor='blue') #设置图例边框颜色
plt.legend(loc='best',facecolor='blue') #设置图例背景颜色,若无边框,参数无效

对于边框还可以采用面向对象方式:

legend = plt.legend(["First", "Second"])
frame = legend.get_frame()
frame.set_facecolor('blue')

(4)设置图例标题

legend = plt.legend(["CH", "US"], title='China VS Us')

(5)设置图例名字及对应关系

legend = plt.legend([p1, p2], ["CH", "US"])

from matplotlib import pyplot as plt
import numpy as np
train_x = np.linspace(-1, 1, 100)
train_y_1 = 2*train_x + np.random.rand(*train_x.shape)*0.3
train_y_2 = train_x**2+np.random.randn(*train_x.shape)*0.3
p1 = plt.scatter(train_x, train_y_1, c='red', marker='v' )
p2= plt.scatter(train_x, train_y_2, c='blue', marker='o' )
legend = plt.legend([p1, p2], ["CH", "US"], facecolor='blue')
plt.show()

2. plt.scatter()

用于画散点图。

X和Y是长度相同的数组 size,点的大小,标量或与数据长度相同的数组 color,点的颜色,标量或与数据长度相同的数组 marker MarketStyle,可选,点的形状,默认'o' Colormap,可选,默认'None' Normalize,亮度设置,0-1 vmin,vmax alpha 透明度,0-1 linewidths

scatter(x, y, 点的大小, 颜色,标记),这是最主要的几个用法,如果括号中不写s=  c=则按默认顺序,写了则按规定的来,不考虑顺序

import matplotlib.pyplot as plt 
#x,y,大小,颜色
plt.scatter([1,2,3,4],[2,4,6,8],[10,20,30,400],['r', 'b','y','k'])   
plt.scatter([1,2,3,4],[9,8,7,6],s=10,c='b', marker='v')   
plt.show()
import numpy as np
import matplotlib.pyplot as plt
# Fixing random state for reproducibility
np.random.seed(19680801)
N = 50
x = np.random.rand(N)
y = np.random.rand(N)
colors = np.random.rand(N)
area = (30 * np.random.rand(N))**2  # 0 to 15 point radii
plt.scatter(x, y, s=area, c=colors, alpha=0.5)
plt.show()

3. plt.plot()

一个通用命令,将(x, y)绘制成线条或散点图。

数据,x是可选的,默认range(len(y)) format,格式,形状,例如,'ro'表示红圈 标有数据的对象,可选

其中,线条的格式还可以使用如下线属性:

alpha float,透明度 fillstyle {'full', 'left', 'right', 'bottom', 'top', 'none'} linestyle/ls {'-', '--', '-.', ':', '', (offset, on-off-seq), ...} linewidth/lw float marker marker style markeredgecolor/mec color markeredgewidth/mew float markerfacecolor/mfc color markersize/ms float

当线属性与fmt冲突时,线属性优先。

一些默认的写法:

>>> plot(x, y)        # plot x and y using default line style and color
>>> plot(x, y, 'bo')  # plot x and y using blue circle markers
>>> plot(y)           # plot y using x as index array 0..N-1
>>> plot(y, 'r+')     # ditto, but with red plusses
import numpy as np
import matplotlib.pyplot as plt
X = np.linspace(0, 2*np.pi, 32, endpoint=True)
C,S = np.cos(X), np.sin(X)
#plt.plot(X,C)
#plt.plot(X,S)
plt.plot(X, C, 'go--')
plt.plot(X,S, color='green', marker='o', linestyle='dashed')
# 一个是fmt,一个是线属性,但是它们的格式是一样的
plt.show()

4. plt.figure()

用于创建一个新图。

新图的编号,默认递增 figsize 宽度,高度,以英寸为单位 分辨率,整数 facecolor edgecolor frameon 若为False,则没有边框 clear 若为True,如果图的编号已存在则先清除

如果有多个figure,请显示的调用 pyplot.close() 关闭你不需要使用的figure,以便pyplot能正确的清理内存。

import numpy as np
import matplotlib.pyplot as plt
X = np.linspace(0, 2*np.pi, 32, endpoint=True)
C,S = np.cos(X), np.sin(X)
plt.figure(num=1)
plt.plot(X,C)
#plt.close()
plt.figure(2)
plt.plot(X,S)
plt.figure(3)
plt.plot([1, 2, 3, 4], [1, 4, 9, 16])
plt.show()

会连续展现三张图,注意与下面subplot的区别。

对于只有一张图时,也有作用,例如设置尺寸和分辨率等:

# 创建一个8x6大小的figure,并设置每英寸80个像素点
plt.figure(figsize=(8, 6), dpi=80)

5. plt.subplot()

用于在一个Figure对象里画多个子图(Axes)。

其调用格式:subplot(numRows, numCols, plotNum),即(行、列、序号)。

图表的整个绘图区域被分成numRows行和numCols列,plotNum参数指定创建的Axes对象所在的区域(左上角序号为1)

如果行数、列数和序号都是个位数可以简写成一个整数,否则需要用逗号隔开。

import numpy as np
import matplotlib.pyplot as plt
X = np.linspace(0, 2*np.pi, 32, endpoint=True)
C,S = np.cos(X), np.sin(X)
plt.subplot(221)
plt.plot(X,C)
plt.subplot(2,2,2) #可以隔开,也可以不隔开
plt.plot(X,S)
plt.subplot(212)
plt.plot([1, 2, 3, 4], [1, 4, 9, 16])
plt.show()

参考链接:

1. CSDN开码牛-matplotlib命令与格式:图例legend语法及设置

2. CSDNweixin_41950276-plt.legend( )函数,给图像加上图例

3. matplotlib.pyplot.legend官方文档

4. CSDNxiaodaicai4452-python绘图基础—scatter用法

5. matplotlib.pyplot.scatter官方文档

6. matplotlib.pyplot.plot官方文档

7. matplotlib.pyplot.figure官方文档

8. CSND繁小华-matplotlib绘制多个子图——subplot

个性签名:时间会解决一切