matplotlib.pyplot模块是一个功能强大的画图模块,可以对画图的多个参数进行调整,以纳斯达克100指数的数据为例,下面简要记录下主要用法。
PS:科研画图还是origin好使。。
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']
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()
官方给的参数如下:
plot([x], y, [fmt], *, data=None, **kwargs)
plot([x], y, [fmt], [x2], y2, [fmt2], ..., **kwargs)
x可以缺省,此时x坐标为1,2,3…
y不能缺省,一般是列表类型
可以多个曲线一起画,如第二行代码所示的格式(但一般不建议,不如多用几行单个曲线,便于调整)…
fmt为定义线的基本属性,可缺省,加上像‘r–’,‘bo’这种控制线的颜色与类型,常用的部分控制语法见下图。
完整版参考来源
用法示例:
(先将数据量调小点,方便看效果)
AAL_100 = AAL[:100]
plt.figure(figsize=(4, 3), facecolor='white', edgecolor='black')
plt.plot(AAL_100, 'b--')
plt.show()
plt.tick_params(axis='both',**kwargs)
实际可调整的参数很多,可以参考下面的图(参考来源)
一般其实用不到这么多。。
用法示例:
更完整的参考示例
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() #花里胡哨的
主要可以改字体的大小、颜色、粗细、透明度等(一般也就命个名,调个字体而已)
title()参数:
对于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()
一幅图像画多个子图,一般用的也不多,画起来也相对麻烦点。
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()