本人依据上课学习内容,将matplotlib内容浓缩为代码块
以下是第二部分的学习内容:
1.添加图表辅助元素
2.子图绘制
3.共享坐标轴
4.双坐标轴
5.调整子图之间的距离

import matplotlib.pyplot as plt
import numpy as np
import pandas as pd
# 显示中文
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = Falsex = np.arange(5)
y1 = np.array([10, 8, 7, 11, 13])
y2 = np.array([9, 6, 5, 10, 12])
lines = plt.plot(x, y1, x, y2)'''1.添加图表辅助元素'''
# 轴标签
# axes对象用set_xlabel()
plt.xlabel('x轴')
plt.ylabel('y轴')# 刻度范围与刻度标签
# 标签也可以在绘制的时候用label等参数直接控制
# 若不设置,则坐标轴的刻度范围取决于数据中的最大值和最小值
# axes用set_xlim(),set_xticklabels
plt.xlim(x.min() - 1.5, x.max() + 1.5)
plt.xticks(np.arange(5), ['a', 'b', 'c', 'd', 'e'])# 标题
# axes用set_title()
plt.title('展示图表辅助元素的折线图')# 图例
# 如果plot建立的时候已经指明label内容,直接plt.legend()即可
# fancybox边框设为圆角,loc设置位置
plt.legend(lines, ['折线1', '折线2'], shadow=True, fancybox=True,loc='best', title='图例标题展示')# 网格
# 坐标轴无刻度,则无法显示网格
# visible是否显示网格,axis='both'/'x'/'y'显示哪个方向的网格
plt.grid(visible=True, axis='y', linewidth=0.3)# 参考线
# 水平参考线,y是参考线y轴坐标,xmin,xmax是参考线起止位置比例
plt.axhline(y=0, xmax=0, xmin=1, linestyle='--')
# 垂直参考线,x是参考线x轴坐标
plt.axvline(x=0, ymax=0, ymin=1, linestyle='--')# 参考区域
# ymin:表示水平跨度的下限
# ymax:表示水平跨度的上限
# xmin:表示垂直跨度的下限
# xmax:表示垂直跨度的上限
# 水平参考区域,ymin,ymax以数据为单位,xmin,xmax以轴为单位
plt.axhspan(ymin=0.5, ymax=1.0, alpha=0.3)
# 垂直参考区域
plt.axvspan(xmin=0.5, xmax=2.0, alpha=0.3)# 注释文本
# (1)有指向
# xy需要指的坐标,xytest注释文本位置,arrowprops箭头字典
plt.annotate('折线1最小值', xy=(x.min()+2, y1.min()+0.5),xytext=(x.min()+2+1, y1.min()+0.5+1), arrowprops=dict(arrowstyle="->"))
# (2)无指向
# x,y注释文本坐标,s注释文本内容
# bbox注释文本边框属性
plt.text(x=3.10, y=0.10, s="y=0参考线", bbox=dict(alpha=0.2))# 编写数学表达式文本
# r'$\alpha > \beta$'  a>b
# r'$\alpha_i > \beta_i$'  ai>bi, _下标,^上标
# r'$\frac{3}{4}$'  3/4  \frac{}{}显示分数
# r'$\frac{5 - \frac{1}{x}}{4}$'   (5-1/x)/4# 表格
plt.table(cellText=[[6, 6, 6], [8, 8, 8]], colWidths=[0.1] * 3,rowLabels=['第1行', '第2行'], colLabels=['第1列', '第2列', '第3列'], loc='upper left')plt.show()'''2.子图绘制'''
# Figure函数:
fig = plt.figure(figsize=(6, 8))  # 创建a*b尺寸的画布
ax = fig.add_subplot(111)  # 在画布上添加1,1,1(1行1列索引1)绘图区域
ax.plot(y1)
# Subplots函数:
fig, ax = plt.subplots(2, 2, figsize=(10, 5))
ax1 = ax[1, 0]  # 行1列0
ax1.plot([1, 2, 3, 4, 5])
# fig, ax1, ax2, ax3, ax4 = plt.subplots(2, 2, figsize=(10, 5))
# ax1.plot(y1)  # ax[0, 0]
# ax2.bar(x, y1)  # ax[0, 1]
# ax3.plot(y2)  # ax[1, 0]
# ax4.bar(x, y2)  # ax[1, 1]'''3.共享坐标轴'''
# sharex(或sharey)参数控制是否共享x轴(或y轴)。
# sharex参数支持False或'none'、True或
# 'all'(都共享x轴)、'row'(同行子图共享x轴)、'col'(同列子图共享x轴)中任一取值。
fig, ax_arr = plt.subplots(2, 2, sharex='col')# 双坐标轴,twinx 加y轴双坐标,twiny 加x轴双坐标
# ax_right = ax.twinx# 调整子图之间的距离
# plt.tight_layout()

【Python】Matplotlib绘图02_pyplot图表美化相关推荐

  1. python画图显示不了中文_完美解决Python matplotlib绘图时汉字显示不正常的问题

    Matplotlib是一个很好的作图软件,但是python下默认不支持中文,所以需要做一些修改,方法如下: 1.在python安装目录的Lib目录下创建ch.py文件. 文件中代码为: 保存,以后通过 ...

  2. Python+matplotlib绘图时显示中文的设置方法

    封面图片:<Python程序设计基础与应用>(ISBN:9787111606178),董付国,机械工业出版社 图书详情: =================== 在使用Python+mat ...

  3. python 3d绘图 汉字_完美解决Python matplotlib绘图时汉字显示不正常的问题

    Matplotlib是一个很好的作图软件,但是python下默认不支持中文,所以需要做一些修改,方法如下: 1.在python安装目录的Lib目录下创建ch.py文件. 文件中代码为: 保存,以后通过 ...

  4. 科研论文绘图:ppt, word,latex,python matplotlib绘图 ,矢量图,高清图,放大不失真

    目录 1. 用PPT绘图,保存为高清图片,不推荐使用,方法链接 2. 用PPT绘图,保存为emf矢量图,适合插入word,方法链接 3. 用PPT画图,保存为eps文件,适合插入latex,方法链接 ...

  5. Python Matplotlib绘图的正确打开方式

    Python Matplotlib绘图的正确打开方式 文章目录 Python Matplotlib绘图的正确打开方式 1.先搞懂fig.axes.axis `Figure` `Axes` `Axis` ...

  6. 解决 Python Matplotlib 绘图时不连续x轴自动补全的问题(xsticks)

    问题 发现一个奇怪的问题,记录一下: 用 Python Matplotlib绘图的时候,x轴为不连续的日期,但是画出来的图,对于不连续的部分x轴会自动补全,空出来的部分是没有值的.(x轴数据明明是明确 ...

  7. 使用Python Matplotlib绘图并输出图像到文件中的实践

    在大数据及深度学习的背景下,随着卷积神经网络(CNN)的成功应用,图像识别能力好像唾手可得.最近实际工作中,却遇到了困难,难题是用于可学习的图像贫乏,很难形成用于学习的样本. 其实,也是有一定解决图像 ...

  8. python绘制3d图-Python matplotlib绘图示例 - 绘制三维图形

    Python matplotlib模块是扩展的MATLAB的一个绘图工具库.它可以绘制各种图形,下面就学习了下Python中的matplotlib模块,如何绘制三维图形. 示例代码一: # codin ...

  9. python matplotlib绘图 axes和pyplot用法的区别是什么?子图subplot

    在matplotlib绘图过程中,经常会出现axes绘图和pyplot绘图这两种方法,但是如果不搞清楚它们的区别,往往会得不到你想要的图形.所谓axes绘图是指调用axes对象(坐标轴对象)去完成绘图 ...

最新文章

  1. 动态rem与1px边框问题的理解
  2. ruby动态new对象
  3. 反向传播算法最全解读,机器学习进阶必看!
  4. spring boot: 查看ApplicationContext中有哪些Bean
  5. C++string中find_first_not_of()函数和find_last_not_of()函数
  6. 配置HTTPS以与Servlet一起使用
  7. uni-app微信获取手机号,第一次解密总是失败
  8. PIL修改带有透明像素的png图片颜色
  9. Android App混合开发
  10. UM2 3D 打印机 DIY 实践 ( 3) Marlin 固件配置篇
  11. JAVA长连接与短连接
  12. 一个简单帆软报表制作基础步骤
  13. Trivy是CD流水线上面向容器的脆弱性扫描器
  14. ie11启用java时打不开_ie11打不开解决方法
  15. 手机黑屏,但是按开机键有震动,能进系统,usb也能识别fastboot和rec(bl已解)
  16. 【毕业设计】大数据电影数据分析可视化系统 - python 爬虫
  17. Vue+SpringBoot图书管理系统前后端分离(教你一步一步搭建)
  18. Educational Codeforces Round 95 (Rated for Div. 2)D. Trash Problem(权值线段树+离散化)
  19. unity 人物走动声音_Unity3D实现人物走动 教程
  20. Vector-常用CAN工具 - CANoe入门到精通_02

热门文章

  1. java打开jnlp_如何打开jnlp
  2. matlab ode45修改,matlab ode45增加输入值
  3. 关于交换机包转发率1.488Mpps是如何计算出来的?
  4. yii mysql gii_yii框架之gii的使用
  5. 微信文章排版技巧和相关排版工具
  6. sqlDBX连接服务器的DB2数据库
  7. PayPal支付集成到自己Web网站
  8. 怎么提高编程能力?逻辑思维能力?
  9. 金蝶shr动态列表展示自定义字段
  10. 强化学习11——为什么ADP需要持续激励条件?