python matplotlib.pyplot模块画图用法

目录

    • 说明
    • 1. 导入模块与数据
    • 2. 单幅图像绘制——常用函数
      • 1. plt.figure()函数可以控制图像整体的比例,大小,像素等
      • 2. plt.plot()函数,主要是传入数据进行画图
      • 3. plt.tick_params()函数主要是调整刻度线相关的属性,如label字体大小,刻度线颜色之类的
      • 4. plt.title()、plt.xlabel()、plt.ylabel()为图表、横坐标、纵坐标命名
    • 3. 多幅图像绘制——plt.subplot()函数

说明

matplotlib.pyplot模块是一个功能强大的画图模块,可以对画图的多个参数进行调整,以纳斯达克100指数的数据为例,下面简要记录下主要用法。
PS:科研画图还是origin好使。。

1. 导入模块与数据

import matplotlib.pyplot as plt
import pandas as pd
file_path = r"I:\nasdaq100\small\nasdaq100_padding.csv"
df = pd.read_csv(file_path)
AAL = df['AAL']

2. 单幅图像绘制——常用函数

1. plt.figure()函数可以控制图像整体的比例,大小,像素等

figure(num=None, figsize=None, dpi=None, facecolor=None, edgecolor=None, frameon=True)
  •   num:图像编号或名称,数字为编号 ,字符串为名称
      figsize:指定figure的宽和高,单位为英寸
      dpi参数指定绘图对象的分辨率,即每英寸多少个像素,缺省值为80
      facecolor:背景颜色
      edgecolor:边框颜色
      frameon:是否显示边框
    

用法示例:

plt.figure(figsize=(4, 3), facecolor='white', edgecolor='black')
plt.plot(AAL, 'r')
plt.show()
python matplotlib.pyplot模块画图用法_第1张图片

2. plt.plot()函数,主要是传入数据进行画图

官方给的参数如下:

plot([x], y, [fmt], *, data=None, **kwargs)
plot([x], y, [fmt], [x2], y2, [fmt2], ..., **kwargs)

x可以缺省,此时x坐标为1,2,3…
y不能缺省,一般是列表类型
可以多个曲线一起画,如第二行代码所示的格式(但一般不建议,不如多用几行单个曲线,便于调整)…
fmt为定义线的基本属性,可缺省,加上像‘r–’,‘bo’这种控制线的颜色与类型,常用的部分控制语法见下图。
完整版参考来源
python matplotlib.pyplot模块画图用法_第2张图片
python matplotlib.pyplot模块画图用法_第3张图片
用法示例:
(先将数据量调小点,方便看效果)

AAL_100 = AAL[:100]
plt.figure(figsize=(4, 3), facecolor='white', edgecolor='black')
plt.plot(AAL_100, 'b--')
plt.show()

python matplotlib.pyplot模块画图用法_第4张图片

3. plt.tick_params()函数主要是调整刻度线相关的属性,如label字体大小,刻度线颜色之类的

plt.tick_params(axis='both',**kwargs)

实际可调整的参数很多,可以参考下面的图(参考来源)
一般其实用不到这么多。。
python matplotlib.pyplot模块画图用法_第5张图片

用法示例:
更完整的参考示例

AAL_100 = AAL[:100]
plt.figure(figsize=(4, 3), facecolor='white', edgecolor='black')
plt.plot(AAL_100, 'b--')
plt.tick_params(axis='x', direction='in', width=2, colors='c', labelsize=12)
plt.tick_params(axis='y', direction='inout', width=2, colors='m', labelsize=12)
plt.show()	#花里胡哨的

python matplotlib.pyplot模块画图用法_第6张图片

4. plt.title()、plt.xlabel()、plt.ylabel()为图表、横坐标、纵坐标命名

主要可以改字体的大小、颜色、粗细、透明度等(一般也就命个名,调个字体而已
title()参数:
python matplotlib.pyplot模块画图用法_第7张图片

对于xlabel()和ylabel(),一般不会改的太多,如示例所示。
用法示例:

plt.plot(AAL_100, ls='-.', c='rosybrown')
plt.tick_params(axis='x', direction='in', width=2, colors='c', labelsize=12)
plt.tick_params(axis='y', direction='inout', width=2, colors='m', labelsize=12)
plt.title('nasdaq100-ALL_100')
plt.xlabel('Day', fontsize=12, color='y')
plt.ylabel('Value', fontsize=12)
plt.show()

python matplotlib.pyplot模块画图用法_第8张图片

3. 多幅图像绘制——plt.subplot()函数

一幅图像画多个子图,一般用的也不多,画起来也相对麻烦点。

plt.subplot(nrows, ncols, index, **kwargs)

用三个整数描述子图的数量及索引(行,列,子图索引),以下两种表达效果一致。

plt.subplot(232)	# 两行三列、一共6个图,当前为第二个子图
plt.subplot(2,3,2)	# 相当于表示当前在编辑第一个图

编辑好之后,就按照上述单张图片进行编辑,需要注意的是,plt.show()应当放在所有子图的最后。
用法示例:

AAL = df['AAL']
AAL_100 = AAL[:100]
ADBE = df['ADBE']
ADBE_100 = ADBE[:100]

plt.subplot(221)
plt.plot(AAL, 'r')
plt.tick_params(axis='x', direction='in', width=2, colors='c', labelsize=6)
plt.tick_params(axis='y', direction='inout', width=2, colors='m', labelsize=6)
plt.title('nasdaq100-ALL')
plt.xlabel('Day')
plt.ylabel('Value')

plt.subplot(222)
plt.plot(AAL_100, ls='-.', c='rosybrown')
plt.tick_params(axis='x', direction='in', width=2, colors='c', labelsize=6)
plt.tick_params(axis='y', direction='inout', width=2, colors='m', labelsize=6)
plt.title('nasdaq100-ALL_100')
plt.xlabel('Day', fontsize=6, color='k')
plt.ylabel('Value', fontsize=6)

plt.subplot(223)
plt.plot(ADBE, 'r')
plt.tick_params(axis='x', direction='in', width=2, colors='c', labelsize=6)
plt.tick_params(axis='y', direction='inout', width=2, colors='m', labelsize=6)
plt.title('nasdaq100-ADBE')
plt.xlabel('Day')
plt.ylabel('Value')

plt.subplot(224)
plt.plot(ADBE_100, ls='-.', c='rosybrown')
plt.tick_params(axis='x', direction='in', width=2, colors='c', labelsize=6)
plt.tick_params(axis='y', direction='inout', width=2, colors='m', labelsize=6)
plt.title('nasdaq100-ADBE_100')
plt.xlabel('Day', fontsize=6, color='k')
plt.ylabel('Value', fontsize=6)

plt.show()

python matplotlib.pyplot模块画图用法_第9张图片

你可能感兴趣的:(python,可视化,图像绘制,plot)