python中plt.legend_matplotlib中plt.legend等的使用方法
plt.lengend()用于给图像加图例。图例是集中于地图一角或一侧的地图上各种符号和颜色所代表内容与指标的说明,有助于更好的认识地图。语法参数如下: matplotlib.pyplot.legend(*args,**kwargs)keywordDescriptionlocLocation code string, or tuple (see below).图例所有figure位置propth.
plt.lengend()
用于给图像加图例。
图例是集中于地图一角或一侧的地图上各种符号和颜色所代表内容与指标的说明,有助于更好的认识地图。
语法参数如下: matplotlib.pyplot.legend(*args, **kwargs)
keyword
Description
loc
Location code string, or tuple (see below).图例所有figure位置
prop
the font property字体参数
fontsize
the font size (used only if prop is not specified)
markerscale
the relative size of legend markers vs. original
图例标记与原始标记的相对大小
markerfirst
If True (default), marker is to left of the label.
如果为True,则图例标记位于图例标签的左侧
numpoints
the number of points in the legend for line
为线条图图例条目创建的标记点数
scatterpoints
the number of points in the legend for scatter plot
为散点图图例条目创建的标记点数
scatteryoffsets
a list of yoffsets for scatter symbols in legend
为散点图图例条目创建的标记的垂直偏移量
frameon
If True, draw the legend on a patch (frame).
控制是否应在图例周围绘制框架
fancybox
If True, draw the frame with a round fancybox.
控制是否应在构成图例背景的FancyBboxPatch周围启用圆边
shadow
If True, draw a shadow behind legend.
控制是否在图例后面画一个阴
framealpha
Transparency of the frame.
控制图例框架的 Alpha 透明度
edgecolor
Frame edgecolor.
facecolor
Frame facecolor.
ncol
number of columns 设置图例分为n列展示
borderpad
the fractional whitespace inside the legend border
图例边框的内边距
labelspacing
the vertical space between the legend entries
图例条目之间的垂直间距
handlelength
the length of the legend handles
图例句柄的长度
handleheight
the height of the legend handles
图例句柄的高度
handletextpad
the pad between the legend handle and text
图例句柄和文本之间的间距
borderaxespad
the pad between the axes and legend border
轴与图例边框之间的距离
columnspacing
the spacing between columns 列间距
title
the legend title
bbox_to_anchor
the bbox that the legend will be anchored.指定图例在轴的位置
bbox_transform
the transform for the bbox. transAxes if None.
常用的几个参数:
(1)设置图列位置
plt.legend(loc='upper center')
0: ‘best'
1: ‘upper right'
2: ‘upper left'
3: ‘lower left'
4: ‘lower right'
5: ‘right'
6: ‘center left'
7: ‘center right'
8: ‘lower center'
9: ‘upper center'
10: ‘center'
(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 importpyplot as pltimportnumpy as np
train_x= np.linspace(-1, 1, 100)
train_y_1= 2*train_x + np.random.rand(*train_x.shape)*0.3train_y_2= train_x**2+np.random.randn(*train_x.shape)*0.3p1= 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()
plt.scatter()
用于画散点图。
x,y
X和Y是长度相同的数组
s
size,点的大小,标量或与数据长度相同的数组
c
color,点的颜色,标量或与数据长度相同的数组
marker
MarketStyle,可选,点的形状,默认'o'
cmap
Colormap,可选,默认'None'
norm
Normalize,亮度设置,0-1
vmin,vmax
亮度设置
alpha
透明度,0-1
linewidths
其中散点的形状参数marker如下:
其中颜色参数c如下:
scatter(x, y, 点的大小, 颜色,标记),这是最主要的几个用法,如果括号中不写s= c=则按默认顺序,写了则按规定的来,不考虑顺序
importmatplotlib.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()
importnumpy as npimportmatplotlib.pyplot as plt#Fixing random state for reproducibility
np.random.seed(19680801)
N= 50x=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()
plt.plot()
一个通用命令,将(x, y)绘制成线条或散点图。
x, y
数据,x是可选的,默认range(len(y))
fmt
format,格式,形状,例如,'ro'表示红圈
data
标有数据的对象,可选
其中,线条的格式还可以使用如下线属性:
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
importnumpy as npimportmatplotlib.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()
plt.figure()
用于创建一个新图。
num
新图的编号,默认递增
figsize
宽度,高度,以英寸为单位
dpi
分辨率,整数
facecolor
背景颜色
edgecolor
边框颜色
frameon
若为False,则没有边框
clear
若为True,如果图的编号已存在则先清除
如果有多个figure,请显示的调用 pyplot.close() 关闭你不需要使用的figure,以便pyplot能正确的清理内存。
importnumpy as npimportmatplotlib.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)
plt.subplot()
用于在一个Figure对象里画多个子图(Axes)。
其调用格式:subplot(numRows, numCols, plotNum),即(行、列、序号)。
图表的整个绘图区域被分成numRows行和numCols列,plotNum参数指定创建的Axes对象所在的区域(左上角序号为1)
如果行数、列数和序号都是个位数可以简写成一个整数,否则需要用逗号隔开。
importnumpy as npimportmatplotlib.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()
参考链接:
更多推荐
所有评论(0)