+关注
已关注

分类  

暂无分类

标签  

暂无标签

日期归档  

2019-08(47)

2019-09(90)

2019-10(13)

2019-11(9)

2019-12(19)

【深度学习学习笔记】2.matplotlib.pyplot可视化

发布于2020-08-01 00:02     阅读(777)     评论(0)     点赞(7)     收藏(2)


import matplotlib.pyplot as plt

1.散点图scatter:离散数据可视化

plt.scatter(x, y, s=None, c=None, marker=None, cmap=None, norm=None, vmin=None, vmax=None, alpha=None, linewidths=None, verts=None, edgecolors=None, *, data=None, **kwargs)

x,y:是输入数据,两个都是shape=(n,)的数组。

s:数据点大小,是一个实数或者是一个数组shape=(n,),默认20。

c:表示的是颜色。默认是蓝色’b’。

marker:表示的是标记的样式,默认的是’o’。可选样式见最后

cmap:Colormap实体或者是一个colormap的名字,cmap仅仅当c是一个浮点数数组的时候才使用。如果没有申明就是image.cmap

norm:亮度设置,0-1之间,只有c是一个浮点数的数组的时候才使用。如果没有申明,就是默认为colors.Normalize。

vmin,实数,用来进行亮度数据的归一化。当norm存在的时候忽略。

alpha:实数,透明度。0-1之间。

linewidths:标记点的长度。

    plt.scatter(X, Y, s=20, c='r', marker='v')
    plt.show()

2.曲线图plot

plt.plot(x, y, format_string, **kwargs)

x ,y:输入数据,列表或数组

format_string:控制曲线的格式字符串,由颜色字符、风格字符、标记字符组成,可选样式见下。

**kwargs 第二组或更多(x,y,format_string),可画多条曲线

plt.plot()可以将离散的点连成线


X = [1,2,3,4,5]
Y = [2,3,7,5,2]

plt.plot(X, Y, 'g.-')
plt.show()

在这里插入图片描述

可以画多条线。定义标记样式之后如果不定义曲线风格就会变成散点图,比如中间这条……

b = np.arange(5)
plt.plot(b, b*2,
         b, b*1, 'x',
         b, b*0.5, '.-')
plt.show()

在这里插入图片描述

样式参数也可以单独定义:

color : 控制线条颜色,

linestyle : 线条风格,

marker : 标记风格,

markerfacecolor: 标记颜色,

markersize: 标记尺寸。

b = np.arange(5)
plt.plot(b, b*1.5, linestyle='--')
plt.plot(b, b*0.5, c='b', marker='*', markerfacecolor='r', markersize=20)
plt.show()

在这里插入图片描述

3.标题titile

plt.title()

fontsize:设置字体大小,默认12,可选参数 [‘xx-small’, ‘x-small’, ‘small’, ‘medium’, ‘large’,‘x-large’, ‘xx-large’]

fontweight:设置字体粗细,可选参数 [‘light’, ‘normal’, ‘medium’, ‘semibold’, ‘bold’, ‘heavy’, ‘black’]

fontstyle:设置字体类型,可选参数[ ‘normal’ | ‘italic’ | ‘oblique’ ],italic斜体,oblique倾斜

verticalalignment:设置水平对齐方式 ,可选参数 : ‘center’ , ‘top’ , ‘bottom’ , ‘baseline’

horizontalalignment:设置垂直对齐方式,可选参数:left,right,center

rotation:(旋转角度)可选参数为:vertical,horizontal 。也可以为数字

alpha:透明度,参数值0至1之间

backgroundcolor:标题背景颜色

bbox:给标题增加外框 ,常用参数如下:

plt.title('',bbox=dict())

boxstyle:方框外形

facecolor(简写fc):背景颜色,之前设置的背景颜色会失效

edgecolor(简写ec):边框线条颜色

edgewidth:边框线条大小

4.图例legend

plt.legend(*args, **kwargs)

keyword: Description

loc:图例的位置。
可选 ‘best’, ‘upper right’, ‘upper left’,‘lower left’, ‘lower right’, ‘right’, ‘center left’, ‘center right’, ‘lower center’, ‘upper center’, ‘center’。
也可以用(x,y)设定。x,y不是实际坐标值,是把坐标看成(1,1)后距离左下角的比例。例如(0.5,0.5)在中间。

plt.legend(loc='upper center')

prop :字体参数。

fontsize :字体大小。可选 int ,float ,‘xx-small’, ‘x-small’, ‘small’, ‘medium’, ‘large’, ‘x-large’, ‘xx-large’

markerscale :图例标记与原始标记的相对大小

markerfirst :如果为True,则图例标记位于图例标签的左侧

numpoints :为线条图图例条目创建的标记点数
scatterpoints :为散点图图例条目创建的标记点数
scatteryoffsets :为散点图图例条目创建的标记的垂直偏移量

frameon :是否绘制图例边框

plt.legend(loc='best',frameon=False) #去掉图例边框

fancybox :控制是否应在构成图例背景的FancyBboxPatch周围启用圆边

shadow : 控制是否在图例后面画一个阴
framealpha: 控制图例框架的 Alpha 透明度

edgecolor:图例边框颜色.

facecolor :图例背景颜色.

ncol :设置图例分为n列展示
borderpad : 图例边框的内边距
labelspacing:图例条目之间的垂直间距
handlelength: 图例句柄的长度
handleheight: 图例句柄的高度
handletextpad:图例句柄和文本之间的间距
borderaxespad :轴与图例边框之间的距离
columnspacing :列间距

title :设置图例标题

bbox_to_anchor :指定图例在轴的位置 bbox_transform:the transform for the bbox. transAxes if None.

可以按顺序给图例命名:

    plt.plot(b, b * 3.0, '--')
    plt.plot(b, b * 2.0, '-' )
    plt.plot(b, b * 1.5, ':')
    plt.plot(b, b * 1.0, '-.')
    plt.plot(b, b * 0.5, '')
    plt.legend([u'破折线',u'实线',u'虚线',u'点划线',u'无'])
    plt.show()

在这里插入图片描述
也可以给plt.plot()中加入label参数:

plt.plot([1, 3, 5], [2, 4, 6], label=u'中文图例')

另一种使用方式:

# 另一种图例命名方式 例1 
    p1, = plt.plot(b, b)
    p2, = plt.plot(b, b * 1.5)
    plt.legend([p1, p2], ['line1', 'line2'])
    plt.show()

在这里插入图片描述

中文图例

from pylab import mpl
mpl.rcParams['font.sans-serif'] = ['SimHei'] #SimHei是黑体的意思

plt.plot([1, 3, 5], [2, 4, 6], label=u'中文图例')
plt.legend()
plt.show()

在这里插入图片描述

5.坐标轴标签

plt.xlabel(xlabel,fontdict=None,labelpd=None,**kwargs)

keyword: Description

fontdict

labelpad

    font2 = {'family': 'Times New Roman',
             'weight': 'normal',
             'size': 30,
             }
    plt.xlabel('x', font2)
    plt.ylabel('y',size=30)
  
    plt.show()

在这里插入图片描述

6.创建自定义图像 plt.figure()

figure(num=None, figsize=None, dpi=None, facecolor=None, edgecolor=None, frameon=True)

显示图像的画布

num:图像编号或名称,数字为编号 ,字符串为名称

figsize:指定figure的宽和高,单位为英寸;

dpi参数指定绘图对象的分辨率,即每英寸多少个像素,缺省值为80 1英寸等于2.5cm,A4纸是 21*30cm的纸张

facecolor:背景颜色

edgecolor:边框颜色

frameon:是否显示边框

7.创建单个子图 plt.subplot

subplot(nrows,ncols, index, **kwargs)
plt.subplot可以规划figure划分为n个子图

nrows, nclos, index:三个整数,描述子图的位置信息。分别是行数、列数、索引。所有的数字不能超过10。plt.subplot(2, 3, 5) 和 plt.subplot(235) 是一样的。

projection:子图的类型.默认线型图, ‘aitoff’, ‘hammer’, ‘lambert’, ‘mollweide’,极点图 ‘polar’, ‘rectilinear’, str

    plt.subplot(221)
    plt.plot(b,b)
    plt.title('1')

    plt.subplot(222, projection='polar')
    plt.plot(b, b*2)
    plt.title('2')

    plt.subplot(223)
    plt.plot(b, b*1.5)
    plt.xlabel('x')

    plt.subplot(224)
    plt.plot(b, b*0.5)

    plt.show()

在这里插入图片描述

8.创建多个子图 plt.subplots

参数和plt.subplot类似

    f, axes =plt.subplots(2,2)

    ax1=axes[0,0]
    ax1.plot(b,b)
    ax1.grid()	# 网格图

    ax2 = axes[0, 1]
    ax2.plot(b, b*1.5)
	
	# 没有作图的子图会显示出来空子图
    plt.show()

没有作图的子图会显示出来空子图
在这里插入图片描述

9.面向对象API:add_subplots与add_axes

1.add_subplots

参数和subplots相似

 # 新建figure对象
    fig = plt.figure()
    # 新建子图1
    ax1 = fig.add_subplot(2, 2, 1)
    ax1.plot(b, b)
    # 新建子图3
    ax3 = fig.add_subplot(2, 2, 3)
    ax3.plot(b, b ** 2)
    ax3.grid(color='r', linestyle='--', linewidth=1, alpha=0.3)
    # 新建子图4
    ax4 = fig.add_subplot(2, 2, 4)
    ax4.plot(b, np.log(b))
    plt.show()

没有作图的子图不会显示出来
在这里插入图片描述

2.add_axes新增子区域

可以用来做图中图。。。

    # 新建figure
    fig = plt.figure()
    # 定义数据
    x = [1, 2, 3, 4, 5, 6, 7]
    y = [1, 3, 4, 2, 5, 8, 6]

    # figure的百分比,从figure 10%的位置开始绘制, 宽高是figure的80%
    left, bottom, width, height = 0.1, 0.1, 0.8, 0.8
    # 新增区域ax1,获得绘制的句柄
    ax1 = fig.add_axes([left, bottom, width, height])
    ax1.plot(x, y, 'r')
    ax1.set_title('area1')

    # 新增区域ax2,嵌套在ax1内
    left, bottom, width, height = 0.2, 0.6, 0.25, 0.25
    # 获得绘制的句柄
    ax2 = fig.add_axes([left, bottom, width, height])
    ax2.plot(x, y, 'b')
    ax2.set_title('area2')
    plt.show()

在这里插入图片描述

颜色c可选:

红色: ‘r’
蓝色:‘b’
绿色:‘g’
黄色:‘y’
magenta洋红色: ‘m’
黑:‘k’
白色:'w’看不到?因为这是白色hhh……选中这行试试
cyan青绿色: ‘c’
以下的代码参考:https://www.cnblogs.com/lfri/p/12248629.html


# 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()

在这里插入图片描述

标记marker可选样式:

“^”三角
在这里插入图片描述

“.”点
在这里插入图片描述

“,”像素点
在这里插入图片描述

“o”圆
在这里插入图片描述

“v”倒三角
在这里插入图片描述

“<”左三角
在这里插入图片描述

“>”右三角。略

“1”
在这里插入图片描述

“2”。略
“3”

在这里插入图片描述

“4”。略
“8”八角形

在这里插入图片描述

“s”正方形
在这里插入图片描述

“p”五角
在这里插入图片描述

“h”六角1。略
“H”六角2。略
“*”星星

在这里插入图片描述

“+”加号。略
“x” x号。略
“D”钻石

在这里插入图片描述

“d”细钻
在这里插入图片描述

“|”
在这里插入图片描述

“_”。略

曲线风格可选样式:

‘‐’ 实线
‘‐‐’ 破折线
‘‐.’ 点划线
‘:’ 虚线
’ ’ 无线条

    plt.plot(b, b * 3.0, '--', label=u'破折线')
    plt.plot(b, b * 2.0, '-', label=u'实线', )
    plt.plot(b, b * 1.5, ':', label=u'虚线', )
    plt.plot(b, b * 1.0, '-.', label=u'点划线')
    plt.plot(b, b * 0.5, '', label=u'无')
    plt.legend()
    plt.show()

在这里插入图片描述

原文链接:https://blog.csdn.net/cazenove/article/details/107658502



所属网站分类: 技术文章 > 博客

作者:dfh8374

链接: https://www.pythonheidong.com/blog/article/467596/

来源: python黑洞网

任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任

7 0
收藏该文
已收藏

评论内容:(最多支持255个字符)