【数据可视化】从画简单的三角函数开始
2019-08-07 本文已影响0人
清梦载星河
随便放个镇楼图
1. 前言
1.1 目的
- 画一个包含sin(x)和cos(x)的图
- 在画图过程中掌握使用matplotlib绘图的过程
- 在画图的过程中掌握matplotlib中基本元素
1.2 开发环境
- Anaconda for Python3
- Jupyter Notebook
1.3 最终效果图
最终效果图2. 开始
在用matplotlib画函数图之前,回想一下学生时代是怎么在草稿纸上画函数图的……
- 首先,导入需要的模块等:
%matplotlib inline #用于Jupyter Notebook
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
plt.style.use('seaborn-whitegrid') # 整体风格,看个人意愿是否需要
- 拿出一张图纸,图纸大小一开始可默认不填,后续更改;之后在图纸上画一个坐标轴:
fig = plt.figure(figsize=(24,5),dpi=300) # 在草稿本上找一个空白的地方
ax = plt.axes() #在图纸上画上坐标轴
- figsize : 用于设置图纸大小;
- dpi : 分辨率,默认为100,此处设置为300。
- 给坐标轴上标上 X 和 Y,顺便给函数图起个名字:
ax.set(xlim=(-12,12),ylim=(-1.5,1.5),
xlabel='X',ylabel="sin(x)&cos(x) 's value",
title="sin(x) & cos(x)")
- xlim 和 ylim : 设置 x 轴和 y 轴的上限和下限,参数是个元组,左为下限,右为上限;
- xlabel 和 ylabel : 设置 x 轴和 y 轴的标签;
效果图:
- 在坐标轴上标上刻度,刻度分为主刻度和次刻度:
ax.xaxis.set_major_locator(plt.MultipleLocator(np.pi)) # 主刻度为pi
ax.xaxis.set_minor_locator(plt.MultipleLocator(np.pi/4)) # 次刻度为pi/4
ax.xaxis.grid(True,which='both') # 主刻度和次刻度的网格线都显示
- ax.xaxis.set_major_locator()用于设置主刻度;
- ax.xaxis.set_minor_locator()用于设置次刻度;
- plt.MultipleLocator()用于设置刻度的倍数;
- ax.xaxis.grid()用于设置是否显示网格线,参数为True是显示;
- which用于设置显示哪个刻度,分别有:both, major, minor。
- 画图
x = np.linspace(-10,10,100) # 在 -10 到 10 之间取100个x值
# 下面是sin(x)
ax.plot(x,np.sin(x),color='#645394',linestyle='--',label='sin(x)')
# 下面是cos(x)
ax.plot(x,np.cos(x),color='red',linestyle='-.',label='cos(x)')
- ax.plot()用于画线图;
- color设置线的颜色,可以是英文,可以是十六进制;
- linestyle用于设置线型;
- label用于给线做个标签,设置图例时候会用到。
- 添加图例
ax.legend(loc='upper center',ncol=2)
- legend会自动为由label的图添加图例;
- loc 用于设置图例位置;
- ncol 用于设置图例分为几列。
-
完成。