matplotlib 一

  • 一. 点与线的操作
  • 二. 图表的操作
    • 1. 设置轴标签 .xlabel 和 .ylabel
    • 2. 设置刻度 .xticks 和.yticks
    • 3. 设置轴长 .xlim 和 .ylim
    • 4. 设置标题 .title
    • 5. 注释文本 .annotate
    • 6. 负号显示问题

一. 点与线的操作

方法一:

.plot(x, y, linestyle, linewidth, marker, markersize, color, alpha)

(1) linestyle:
线的风格

字符 描述 中文
- solid line 实线(一个 -,默认值)
dashed line 虚线(两个 - )
-. dash-dot line 点划线
: dotted line 点线

(2) linewidth:
线的宽度。数值型

(3) marker:
关键点、标记点的形状

字符 描述 中文
. point maker 点标记
, pixel marker 像素标记
o circle marker 圆形标记
v triangle_down marker 下三角形
^ triangle_up marker 上三角形
< triangle_left marker 左三角形
> triangle_right 右三角形
1 tri_down marker 下细三角形
2 tri_up marker 上细三角形
3 tri_left marker 左细三角形
4 tri_right marker 右细三角形
s square marker 正方形
p pentagon marker 五角星
* star marker 星型
h hexagon1 六边形1
H hexagon2 六边形2
+ plus marker 加符号
x x marker x符号
D diamond marker 菱形
d thin_diamond marker 瘦菱形
| vline 垂线
_ hline 水平线

对比图案:

marker-官网

(4) markersize:
标志点的大小。数值型。

(5) color:
颜色

字符 描述 中文
b blue 蓝色(默认)
g green 绿色
r red 红色
c cyan 蓝绿色
m magenta 紫红色
y yellow 黄色
k black 黑色
w white 白色
  • 全名 or 缩写
    “red” 或者 “r”
  • 十六进制字符串,如:
    “#008000”
  • RGBA - (Red, Green, Blue, Alpha)
    RGBA values should be within 0-1 range
    color = (0.3, 0.5, 0.7, 0.9)

(6) alpha:
线条的透明度
取值范围[0,1], 左闭右闭

方法二:

plot(x, y, fmt)

fmt = [color] [marker] [linestyle]

例如:

b   ---  blue markers with default shape
ro  ---  red circles
g-  ---  green solid line
--  ---  dashed line with default color

二. 图表的操作

1. 设置轴标签 .xlabel 和 .ylabel

.xlabel(xlabel, fontproporties=None, fontsize=12, rotation=0, backgroundcolor='b', color='k', alpha=None, bbox=None)
.ylabel(ylabel, fontproporties=None, fontsize=12, rotation=90, backgroundcolor='b', color='k', alpha=None, bbox=None)
参数说明:

(1)基本参数
xlabel         --- 标签。
fontproporties --- 字体路径,默认None。(注意:font设置后,fontdict部分属性失效)
fontsize       --- 字体大小,默认12
rotation       --- 旋转角度,从0开始。ylabel默认90,即垂直;xlabel默认0,即水平。
backgroundcolor--- 背景色。
color          --- 标签颜色。
alpha          --- 字体透明度。取值[0,1]。(2)fontdict  ---字体字典参数(key加引号),包含font属性
"fontsize":12                       --- 字体大小,默认12。整型
"fontweight":"medium"               --- 字体粗细。可选:'light', 'normal', 'medium', 'semibold', 'bold', 'heavy', 'black'
"fontstyle":"normal"                --- 字体风格。可选:"normal", "italic"-斜体, "oblique"-倾斜
"verticalalignment":"baseline"      --- 设置垂直对齐方式。可选:"center", "bottom", "top", "baseline"
"horizontalalignment":"center"      --- 设置水平对齐方式。可选:"left","right","center"注意:fontdict里的参数可不加引号,然后直接当做基本参数使用(3)bbox  ---设置标题盒属性字典参数(key不加引号)
boxstyle                   --- 设置边框风格。如:"round"
facecolor                  --- fc。设置标题框背景颜色。
edgecolor                  --- ec。设置边框颜色。
linewidth                  --- lw。设置边框厚度。
alpha                      --- 设置背景透明度
plt.xlabel("时间")
plt.ylabel("数量")

打印输出,横纵坐标没有显示中文:

注意matplotlib没有中文字体,解决办法:
<1>. 直接在代码中加入:

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

<2>. 或按照下列步骤:

第一步:C:\Windows\Fonts 可以找到电脑上自带的字体

第二步:选择合适的字体后,去找该字体的对象名称。在该字体文件上:右键属性 - >安全 - >对象名称 (复制)

第三步:在代码中,导入库的部分

from matplotlib import font_manager
font = font_manager.FontProperties(fname="C:\Windows\Fonts\ARIALUNI.TTF")

第四步:在轴标签的函数中加个fontproperties参数,等于上面指定的字体路径

plt.xlabel("时间", fontproperties=font)
plt.ylabel("数量", fontproperties=font)

结果,中文可以按字体正常显示:

2. 设置刻度 .xticks 和.yticks

matplotlib会根据数据自动生成x轴与y轴的、比较合适的刻度。所以,若果要手动指定,则需要调用函数:
.xticks(ticks=None, labels=None, rotation=0, color='k', fontsize=12, alpha=None, backgroundcolor=None, fontdict=None, bbox=None)
.yticks(ticks=None, labels=None, rotation=0, color='k', fontsize=12, alpha=None, backgroundcolor=None, fontdict=None, bbox=None)

ticks           --- 可迭代类数组对象
labels          --- 更改刻度上的标签,但实际值还是ticks指定的。其余属性同上

注意:轴的设置应放在作图函数的后面,例如:放在折线图plt.plot()的后面,就是先将图画好后,再根据自己的喜好设置刻度。否则,matplotlib会在做完图后自动调整刻度,使之前的刻度设置无效。

3. 设置轴长 .xlim 和 .ylim

.xlim(left, right)
.ylim(left, right)

left     --- 左界限
right    --- 右界限

注意1:设置lim时,matplotlib会根据left和right以及图像进行合适的刻度设置,即自动实现ticks

注意2设置轴长设置刻度很类似,当lim与ticks同时存在时,轴上的刻度显示以ticks为标准,轴的实际长度以靠后的方法为标准 (即 lim 与 ticks 谁在后面就按照它的长度来显示最大轴长) 。但是不同的是,lim的轴设置可以小于图表中的图,即对图部分显示,或称截取;但ticks则无法截取,matplotlib会自动将其显示为:满足显示整个图的最低轴刻度。

使用xlim与ylim进行截取:成功截取

plt.xlim(2,4)
plt.ylim(0,1.5)


使用xticks与yticks进行截取:自动还原

plt.xticks([2,3])
plt.yticks(np.arange(0,4,2))

4. 设置标题 .title

.title(label, fontporperties=None, loc='center', pad=None, rotation, alpha, backgroundcolor, color, fontdict=None, bbox=None)

(1)基本参数
label            ---  标题
fontporperties   ---  同上。字体文件路径font。(注意:font设置后,fontdict部分属性失效)
loc              ---  标题的位置。默认"center"。其余:"left","right"
pad              ---  标题到图表的上下距离。浮点型数据
rotation         ---  旋转角度。"vertical", "horizontal"。可以为数字
alpha            ---  字体透明度。取值[0,1],同上。
backgroundcolor  ---  背景颜色。同color字体颜色使用方法。
color            ---  字体颜色。(2)fontdict  ---字体字典参数(key加引号),包含font属性
"fontsize":12                       --- 字体大小,默认12。整型
"fontweight":"medium"               --- 字体粗细。可选:'light', 'normal', 'medium', 'semibold', 'bold', 'heavy', 'black'
"fontstyle":"normal"                --- 字体风格。可选:"normal", "italic"-斜体, "oblique"-倾斜
"verticalalignment":"baseline"      --- 设置垂直对齐方式。可选:"center", "bottom", "top", "baseline"
"horizontalalignment":"center"      --- 设置水平对齐方式。可选:"left","right","center"注意:fontdict里的参数可不加引号,然后直接当做基本参数使用(3)bbox  ---设置标题盒属性字典参数(key不加引号)
boxstyle                   --- 设置边框风格。如:"round"
facecolor                  --- 设置标题框背景颜色。
edgecolor                  --- 设置边框颜色。
linewidth                  --- 设置边框厚度。
alpha                      --- 设置背景透明度

同样要加上fontproperties字体属性:

plt.title("票房情况", fontproperties=font, fontsize=12, color="red")

输出结果:

5. 注释文本 .annotate

.annotate(text, xy, xytext, arrowprops=dict(), fontdict=None, bbox=None)

(1)基本属性
text          --- 注释文本内容
xy            --- 要注释点的坐标
xytext        --- 注释文本的新坐标
color         --- 注释的颜色(2)arrowprops ---箭头字典属性
color         --- 箭头的颜色
width         --- 箭头的箭身的宽度
headwidth     --- 箭头的头部的宽度
headlength    --- 箭头的头部的长度
shrink        --- 箭头的整体长度进行缩水调整。取值[0.1,0.5),表示箭头的头部和尾部同时缩小该值比例长度;取值[0.5, 0.9]表示箭头的尾部缩小该比例。其余值按原整体长度不变。
arrowstyle    --- 箭头的样式风格``'-'``        None``'->'``       head_length=0.4,head_width=0.2``'-['``       widthB=1.0,lengthB=0.2,angleB=None``'|-|'``      widthA=1.0,widthB=1.0``'-|>'``      head_length=0.4,head_width=0.2``'<-'``       head_length=0.4,head_width=0.2``'<->'``      head_length=0.4,head_width=0.2``'<|-'``      head_length=0.4,head_width=0.2``'<|-|>'``    head_length=0.4,head_width=0.2``'fancy'``    head_length=0.4,head_width=0.4,tail_width=0.4``'simple'``   head_length=0.5,head_width=0.5,tail_width=0.2``'wedge'``    tail_width=0.3,shrink_factor=0.5
(3)fontdict 文字属性,同上
(4)bbox 盒框属性,同上。

简单例子:

plt.xlabel("时间", fontsize=20)
plt.ylabel("数量", fontsize=20)plt.title("票房情况",fontsize=20, loc="center", pad=20)plt.plot([0.5,1, 3, 6], [1,3, 0.5, 6], marker='o', color='r')plt.annotate("最低点",xy=(3,0.5), xytext=(3, 3), color='r', arrowprops=dict(arrowstyle='|-|', color='r'),bbox=dict(boxstyle='round,pad=0.5', fc='yellow', ec='k',lw=1 ,alpha=0.5))

6. 负号显示问题

一般默认负号无法显示,为框框:

前面代码中加上:

plt.rcParams['axes.unicode_minus'] = False

注意:
熟记这两段代码,每次作图前可直接加入:

plt.rcParams['font.sans-serif']=['SimHei']    # 显示中文
plt.rcParams['axes.unicode_minus'] = False    # 显示负号

matplotlib (一) 图的基本操作相关推荐

  1. 图的基本操作实现(数据结构实验)

    实验项目六 图结构基本操作的实现 课程名称:数据结构 实验项目名称:图结构基本操作的实现 实验目的: 1.掌握图的基本操作-遍历. 实验要求: 1.    分别用DFS和BFS的方法实现一个无向图的遍 ...

  2. matplotlib 雷达图2

    说明 搞了一个最新版本的雷达图,比以前那个美观. 不多说,代码奉上: 完整代码 ''' matplotlib雷达图 ''' import numpy as np import matplotlib.p ...

  3. 邻接表1试在邻接表存储结构上实现图的基本操作 insert_vertex 和 insert_arc,相关定义如下:icoding---算法改进--配详细注释

    邻接表1 试在邻接表存储结构上实现图的基本操作 insert_vertex 和 insert_arc,相关定义如下: typedef int VertexType; typedef enum{DG, ...

  4. 邻接表2 -试在邻接表存储结构上实现图的基本操作 del_vertex-数据结构-图-icoding

    邻接表2 试在邻接表存储结构上实现图的基本操作 del_vertex,相关定义如下: typedef int VertexType;typedef enum{DG, UDG }GraphType;ty ...

  5. 邻接表1 - 试在邻接表存储结构上实现图的基本操作 insert_vertex 和 insert_arc-数据结构-图-icoding

    邻接表1 试在邻接表存储结构上实现图的基本操作 insert_vertex 和 insert_arc,相关定义如下: typedef int VertexType;typedef enum{DG, U ...

  6. 数据结构-图-邻接矩阵-试在邻接矩阵存储结构上实现图的基本操作 matrix_insert_vertex 和matrix_insert_arc-icoding

    邻接矩阵 试在邻接矩阵存储结构上实现图的基本操作 matrix_insert_vertex 和matrix_insert_arc,相关定义如下: typedef int VertexType;type ...

  7. 数据结构之图的基本操作

    图的基本操作 基本操作: 判断边是否存在: 列出与某节点相邻的边: 在图中插入一个顶点: 在图中删除一个顶点: 在图中添加一条边: 在图中删除一个边: 查找某顶点的第一个邻接点: 查找某边的权值: 查 ...

  8. python数据结构实验目的_图的基本操作实现(数据结构实验)

    课程名称:数据结构 实验项目名称:图结构基本操作的实现 实验目的: 1.掌握图的基本操作-遍历. 实验要求: 1. 分别用DFS和BFS的方法实现一个无向图的遍历. 实验过程: 1. 创建一个图(可用 ...

  9. 6-5图-图的基本操作

    图的基本操作 一.先学几个单词 adjacent [əˈdʒeɪsnt] 邻近的adj. neighbors [ˈneɪbəz] 邻近v.n. insert [ɪnˈsɜːt , ˈɪnsɜːt] 插 ...

最新文章

  1. 自定义View的三种构造方法
  2. mongodb,redis,mysql简要对比
  3. php ci框架中载入css和js文件失败的原因及解决方法
  4. vooc是什么快充协议_5G时代除了网速,快充同样重要!
  5. 湘潭大学计算机科学收调剂吗,山西师范大学、华侨大学、湘潭大学接受研究生调剂!...
  6. Xsens MTi -1 姿态传感器恢复与MTI的通信的方法
  7. python持久层框架_想设计一个Python的持久层框架
  8. HQL中的substring
  9. html两个盒子怎么左右对其,关于html:在同一行上左右对齐两个内联块
  10. npm WARN build `npm build` called with no arguments. Did you mean to `npm run-script build`
  11. log4net异步写入日志_微信支付万亿日志在Hermes中的实践
  12. 3d旋转相册代码源码_用代码制作3d相册签到墙(附源码)
  13. 关于 Maven 的插件maven-war-plugin
  14. 【c语言】调整数组使奇数所有都位于偶数前面
  15. 查询sql 语句的好坏
  16. 关于atmel的sam9g45无法连接到sam ba以及手动烧写系统时的问题
  17. LCD 1602学习
  18. 用python祝男朋友生日快乐_祝男朋友生日快乐的说说50句
  19. Quirks(怪癖)模式是什么?它和Standards(标准)模式有什么区别
  20. 使用注册表清理右键新建菜单

热门文章

  1. Add Modulo 10 (规律循环节,代码实现细节)
  2. 程序员面试金典01.02. 判定是否互为字符重排
  3. 【NOIP2017】Day1
  4. 使用小程序·云开发静态托管实现免鉴权h5跳转小程序
  5. 【C++】3-3 兔子跳楼梯---动态规划(PTA)
  6. 沙盒效应(Sandbox Effect)
  7. 续流二级管在电路的作用
  8. Docker——安装
  9. 韦东山 IMX6ULL和正点原子_「正点原子NANO STM32开发板资料连载」第三章 MDK5 软件入门1...
  10. 智慧医疗读书笔记(1-2)