文章目录

  • matplotlib绘图总结
    • 基础概念图示
    • 接口说明
    • 基础操作
      • 1 图像本身设置
        • 1.1 图像的长宽比例设置
        • 1.2 图像的清晰度
      • 1 标题
        • 1.1 修改标题
      • 2,网格线设置
      • 3,点设置
      • 4 坐标轴设置
        • 4.1 设置坐标轴的范围
        • 4.2 隐藏坐标轴,只显示刻度
        • 4.3 将网格放在图下边
      • 图例设置
        • 1,将图例放在图外
        • 2,设置图例的位置
        • 3,设置图例的列数
    • 实例展示
      • 一极坐标两条线
      • 一个窗口多张图
      • 更改横纵坐标轴刻度
    • 常见问题汇总
      • 1,无法正确显示中文
    • 属性大全
      • 颜色样式
      • 线条风格
      • 线条标记
      • 参考文献

matplotlib绘图总结

基础概念图示


在绘图结构中,figure创建窗口,subplot创建子图。所有的绘画只能在子图上进行。plt表示当前子图,若没有就创建一个子图。所有你会看到一些教程中使用plt进行设置,一些教程使用子图属性进行设置。他们往往存在对应功能函数。

接口说明

axex: 设置坐标轴边界和表面的颜色、坐标刻度值大小和网格的显示
figure: 控制dpi、边界颜色、图形大小、和子区( subplot)设置
font: 字体集(font family)、字体大小和样式设置
grid: 设置网格颜色和线性
legend: 设置图例和其中的文本的显示
line: 设置线条(颜色、线型、宽度等)和标记
patch: 是填充2D空间的图形对象,如多边形和圆。控制线宽、颜色和抗锯齿设置等。
savefig: 可以对保存的图形进行单独设置。例如,设置渲染的文件的背景为白色。
verbose:设置matplotlib在执行期间信息输出,如silent、helpful、debug和debug-annoying。
xticks和yticks: 为x,y轴的主刻度和次刻度设置颜色、大小、方向,以及标签大小。
xlim、ylim: 设置横纵坐标轴范围
xlabel、ylabel: 设置坐标轴名称

基础操作

1 图像本身设置

1.1 图像的长宽比例设置

调整大小,更符合画的图像的长宽比例

plt.rcParams['figure.figsize'] = (8.0, 4.0) # 设置figure_size尺寸

1.2 图像的清晰度

plt.rcParams['savefig.dpi'] = 300 # 图片像素
plt.rcParams['figure.dpi'] = 300 # 分辨率

1 标题

1.1 修改标题

主要是针对多图问题。如果只有一张图那么使用plt.title("你的名字")即可。多图问题需要使用ax.set_titile("name")

import matplotlib.pyplot as plt
import numpy as np
plt.figure(figsize=(6, 6.5))
for i in range(4):ax = plt.subplot(221+i)alpha = 0.98 / 4 * i + 0.01ax.set_title('%.3f' % alpha)t1 = np.arange(0.0, 1.0, 0.01)for n in [1, 2, 3, 4]:plt.plot(t1, t1 ** n, label="n=%d" % n)leg = plt.legend(loc='best', ncol=4, mode="expand", shadow=True)leg.get_frame().set_alpha(alpha)plt.savefig('1.png')
plt.show()

2,网格线设置

连接

3,点设置

参考
marker就是描述的点的样式

plt.plot(x, y1, marker='o', mec='r', mfc='w')

4 坐标轴设置

4.1 设置坐标轴的范围

括号里是起始数值和结束数值。

plt.xlim((-5, 5))
plt.ylim((-2, 2))

4.2 隐藏坐标轴,只显示刻度

实现此功能,但是用到的不是坐标轴参数!而是去掉图的边框。效果图如下
设置前:

设置后:

4.3 将网格放在图下边

ax表示开始图中的区域

ax.set_axisbelow(True)

设置之前:

设置之后:

图例设置

图例所有属性连接

1,将图例放在图外

主要是用到了bbox_to_anchor属性,相关参考

ax4.legend(loc=2, bbox_to_anchor=(0.5, -0.4))

bbox_to_anchor关键字为手动设置图例提供了很大帮助。主要参数设置为(x_loc, y_loc),其中,参数设置参考下图:也可设置负数

2,设置图例的位置

plt.legend(loc = 0)
位置字符串描述 位置编码
‘best’ 0
‘upper right’ 1
‘upper left’ 2
‘lower left’ 3
‘lower right’ 4
‘right’ 5
‘center left’ 6
‘center right’ 7
‘lower center’ 8
‘upper center’ 9
‘center’ 10

3,设置图例的列数

主要实现功能:实现图例的一行排开效果,主要用到了nclo属性,其数字就是列数,

ax.legend(loc=8, ncol=3)

实例展示

一极坐标两条线

#导入包
import matplotlib.pyplot as plt
import numpy as np#创建数据
x = np.linspace(-5, 5, 100)
y1 = np.sin(x)
y2 = np.cos(x)#创建figure窗口
plt.figure(num=3, figsize=(8, 5))
#画曲线1
plt.plot(x, y1)
#画曲线2
plt.plot(x, y2, color='blue', linewidth=5.0, linestyle='--')
#设置坐标轴范围
plt.xlim((-5, 5))
plt.ylim((-2, 2))
#设置坐标轴名称
plt.xlabel('xxxxxxxxxxx')
plt.ylabel('yyyyyyyyyyy')
#设置坐标轴刻度
my_x_ticks = np.arange(-5, 5, 0.5)
my_y_ticks = np.arange(-2, 2, 0.3)
plt.xticks(my_x_ticks)
plt.yticks(my_y_ticks)#显示出所有设置
plt.show()

结果:

一个窗口多张图

import numpy as np
import matplotlib.pyplot as pltx = np.arange(-5, 5, 0.1)
y = x * 3# 一个窗口,多个图,多条数据
# 将窗口分成2行1列,在第1个作图,并设置背景色
sub1=plt.subplot(211, facecolor=(0.1843,0.3098,0.3098))
sub2=plt.subplot(212)   # 将窗口分成2行1列,在第2个作图
sub1.plot(x,y)          # 绘制子图
sub2.plot(x,y)          # 绘制子图# 添加一个子坐标系,rect=[左, 下, 宽, 高]
axes1 = plt.axes([.2, .3, .1, .1], facecolor='y')
plt.plot(x, y)          # 绘制子坐标系
# 添加一个子坐标系,rect=[左, 下, 宽, 高]
axes2 = plt.axes([0.7, .2, .1, .1], facecolor='y')
plt.plot(x, y)plt.show()

结果:

更改横纵坐标轴刻度

显示x轴的刻标以及对应的标签
xticks(原始数据横坐标数组, 替代的数组 )

import matplotlib.pyplot as plt
import numpy as np# 创建数据
x = np.linspace(-5, 5, 100)
y1 = np.sin(x)# 创建figure窗口
plt.figure(num=3, figsize=(8, 5))
# 画曲线1
plt.plot(x, y1)# 设置坐标轴范围
plt.xlim((-5, 5))  # 也可写成plt.xlim(-5, 5)
plt.ylim((-2, 2))  # 也可写成plt.ylim(-2, 2)
# 设置坐标轴名称plt.xlabel("Data sets", fontsize=13, fontweight='bold')
plt.ylabel("Accuracy", fontsize=13, fontweight='bold')# 设置坐标轴刻度
my_x_ticks = np.arange(-4, 4, 2)
my_y_ticks = np.arange(-2, 2, 0.5)
# 将原来的横坐标替换为 a b c d
plt.xticks(my_x_ticks, ('a', 'b', 'c', 'd'))
plt.yticks(my_y_ticks)
# 显示出所有设置
plt.show()

结果:

常见问题汇总

1,无法正确显示中文

解决方案参考
有两种方案,一种是每次在代码中配置,另外一种是修改配置文件,为了方便,我一般适用第一种。即在代码前边加上

import matplotlib.pyplot as plt
#coding:utf-8
plt.rcParams['font.sans-serif']=['SimHei'] #用来正常显示中文标签
plt.rcParams['axes.unicode_minus']=False #用来正常显示负号
#有中文出现的情况,需要u'内容'

属性大全

颜色样式

别名             颜色   b               蓝色
g               绿色
r               红色
y               黄色
c               青色
k               黑色
m               洋红色
w               白色

如果这两种颜色不够用,还可以通过两种其他方式来定义颜色值:

1、使用HTML十六进制字符串 color=’#123456’
2、使用合法的HTML颜色名字(’red’,’chartreuse’等)。

线条风格

线条风格linestyle或ls         描述‘-‘                         实线
‘:’                         虚线
‘–’                         破折线
‘None’,’ ‘,’’               什么都不画
‘-.’                        点划线

线条标记

标记maker            描述‘o’                 圆圈
‘.’                 点
‘D’                 菱形
‘s’                 正方形
‘h’                 六边形1
‘*’                 星号
‘H’                 六边形2
‘d’                 小菱形
‘_’                 水平线
‘v’                 一角朝下的三角形
‘8’                 八边形
‘<’                 一角朝左的三角形
‘p’                 五边形
‘>’                 一角朝右的三角形
‘,’                 像素
‘^’                 一角朝上的三角形
‘+’                 加号
‘\  ‘               竖线
‘None’,’’,’ ‘       无
‘x’                 X

参考文献

参考链接:数据架构师
参考链接:xtingjie
参考链接:煲饭酱
参考链接:开码牛

强烈推荐
如果忘记可以看这篇Python–matplotlib绘图

matplotlib绘制极坐标图 最全面总结相关推荐

  1. python画极坐标图_Python matplotlib绘制极坐标图

    极坐标图在数据统计和分析中也经常会用到,这里就介绍一下如何使用Python来绘制极坐标图,主要介绍极坐标散点图和极坐标饼状图. 1.极坐标散点图 N = 150 r = 2 * np.random.r ...

  2. 10 Python Matplotlib 绘制极坐标图和散点图

    matplotlib 绘图实例 import numpy as np import matplotlib.pyplot as plt import matplotlibnp.random.seed(0 ...

  3. matplotlib绘制极坐标图

    见这篇文章:http://t.zoukankan.com/kallan-p-6738577.html

  4. 【python图像处理】python绘制极坐标图

    极坐标图在数据统计和分析中也经常会用到,这里就介绍一下如何使用python来绘制极坐标图,主要介绍极坐标散点图和极坐标饼状图. 1.极坐标散点图 N = 150 r = 2 * np.random.r ...

  5. matplotlib绘制极坐标图像

    只需要在指定图像的时候添加:projection='polar'就可以在极坐标上进行绘图了 import matplotlib.pyplot as plt import numpy as np imp ...

  6. 【python】python matplotlib绘制并保存多张图片+绘制多张子图

    需求描述:画图对比观测值和预测值,绘制对比图及多张子图 绘制对比图 示例代码 import matplotlib.pyplot as plt import numpy as npobs_x_data ...

  7. matplotlib绘制图表,设置刻度标签、最大最小刻度、字体大小,label位置、刻度轴箭头等

    matplotlib绘制图表,设置刻度标签.最大最小刻度.字体大小,label位置.刻度轴箭头等 1. 效果图 2. 源码 2.1 仅使用普通轴ax + fontdict 源码 2.2 使用mpl设置 ...

  8. 使用KMeanCluster对多个区域进行聚类,并结合Matplotlib绘制中心点、最大最小距离点

    使用KMeanCluster对多个区域进行聚类,并结合Matplotlib绘制中心点.最大最小距离点 1. 效果图 2. 源码 2.1 原始数据--xq.txt 2.2 源码 参考 这篇博客将演示如何 ...

  9. Matplotlib绘制象限图——支持中文、箭头、自定义轴线交点

    Matplotlib绘制象限图--支持中文.箭头.自定义轴线交点 1. 效果图 2. 原理 2.1 绘制象限图步骤 2.1 添加文字到图表 3. 源码 参考 这篇博客将介绍如何使用matplotlib ...

最新文章

  1. 分析及解决SQLServer的死锁问题
  2. Flex通用克隆(clone)方法
  3. 【终极方法】Unknown initial character set index ‘255‘ received from server. Initial client characte
  4. lightoj 1224
  5. 【C++对象模型】第一章 关于对象
  6. 想从事 DBA 工作,该挑选哪一款数据库产品【转载+整理】
  7. state.php,状态模式(State)
  8. 实验8:Problem A: 立体空间中的点(I)
  9. Audition报错:“无法应用设备设置,因为发生了以下错误:MME设备内部错误“
  10. 浅谈MySQL索引背后的数据结构及算法【转】
  11. spring-beanFactory二
  12. 策略模式与简单工厂模式
  13. virtualbox 装win95 win98
  14. NativeWindow_02_DialogBoxParam_VC6
  15. DNS域传送漏洞(CVE-2015-5254)
  16. 用c#语言制作点歌程序,c#实现KTV点歌系统
  17. java 微信高级群发_java微信平台,高级群发接口开发
  18. 面试心得与总结---BAT、网易、蘑菇街
  19. yarn 编译环境时遇到的问题和解决方法
  20. Java中IO流,输入输出流概述与总结(转载自别先生文章)

热门文章

  1. Ubuntu 命令行安装chrome
  2. 艾伟也谈项目管理,项目经理要如何看待技术?
  3. SpringBoot项目集成UniPush推送服务
  4. 暗通道去雾法-对算法的理解Dark Channel Prior
  5. 电子科大自考c语言试题,220名北京考生赶考国科大 面试题目无刚性答案
  6. My97DatePicker日期范围限制
  7. 中国制造2025新机遇 机器视觉行业爆发
  8. 新道格XDG1400磁敏测速传感器的详细介绍
  9. android 动画后动画效果,Android5.0之后 VectorDrawable实现超炫酷动画效果
  10. [UWP]使用离散式关键帧播放动画