Matplotlib绘图一般用于数据可视化
常用的图表有:
- 折线图
- 散点图/气泡图
- 条形图/柱状图
- 饼图
- 直方图
- 箱线图
- 热力图
需要学习的不只是如何绘图,更要知道什么样的数据用什么图表展示效果最好
import matplotlib.pyplot as plt
折线图
折线图用于显示随时间或有序类别的变化趋势
x = [1,2,3,4,5,6] # x轴坐标 y = [3,5,1,8,4,9] # y轴坐标 plt.plot(x, y)
[<matplotlib.lines.Line2D at 0x568fef0>]
output_3_1.png
简写:只写一个轴坐标,默认y轴(x轴自增)
plt.plot([2,5,1,8,4])
[<matplotlib.lines.Line2D at 0x572a908>]
output_5_1.png
线条和标记节点样式
标记字符:标记线条中的点
线条颜色,color='g' 线条风格,linestyle='--' 线条粗细,linewidth=5.0 标记风格,marker='o' 标记颜色,markerfacecolor='b' 标记尺寸,markersize=20 透明度,alpha=0.5
线条和标记节点格式字符(详见课件)
- 如果不设置颜色,系统默认会取一个不同颜色来区别线条
- 图像打印时,黑白打印机不能区分颜色,需要风格区分
颜色字符 | 风格字符 | 标记字符1 | 标记字符2 |
r 红色 - 实线 o 实心圈标记 1 下花三角标记
g 绿色 -- 虚线,破折线 . 点标记 2 上花三角标记
b 蓝色 -. 点划线 , 像素标记,极小的点 3 左花三角标记
w 白色 : 点虚线,虚线 v 倒三角标记 4 右花三角标记
'' 留空或空格,无线条 ^ 上三角标记 s 实心方形标记
c 青色 > 右三角标记 p 实心五角标记
m 洋红 < 左三角标记 h 竖六边形标记
y 黄色 * 星形标记 H 横六边形标记
k 黑色 + 十字标记 D 菱形标记
x x标记 d 瘦菱形标记
#00ff00 16进制 ` ` 垂直线标记
0.8 灰度值字符串
plt.plot(
[1,2,3,4,5,6], # x轴坐标
[3,5,1,8,4,9], # y轴坐标
# 线条样式 # color='red', # color='r', color='#000000', # 线条颜色 linestyle='-', # 线条样式 linewidth=20, # 线条粗细 # 标记样式 marker='*', # 标记样式 markerfacecolor='r', # 标记颜色 markersize=50, # 标记大小 alpha=0.5, # 透明度 )
[<matplotlib.lines.Line2D at 0x9b351d0>]
output_7_1.png
案例:绘制2017年7月国际外汇市场美元/人民币汇率走势图
时间 收盘价 2017年7月3日 6.8007 2017年7月4日 6.8007 2017年7月5日 6.8015 2017年7月6日 6.8015 2017年7月7日 6.8060 2017年7月10日 6.8036 2017年7月11日 6.8025 2017年7月12日 6.7877 2017年7月13日 6.7835 2017年7月14日 6.7758 2017年7月17日 6.7700 2017年7月18日 6.7463 2017年7月19日 6.7519 2017年7月20日 6.7595 2017年7月21日 6.7669 2017年7月24日 6.7511 2017年7月25日 6.7511 2017年7月26日 6.7539 2017年7月27日 6.7430 2017年7月28日 6.7374 2017年7月31日 6.7265
# 汇率 eurcny = [6.8007,6.8007,6.8015,6.8015,6.8060,6.8036,6.8025,6.7877,6.7835,6.7758,6.7700,6.7463,6.7519,6.7595,6.7669,6.7511,6.7511,6.7539,6.7430,6.7374,6.7265] # 日期 date = [3,4,5,6,7,10,11,12,13,14,17,18,19,20,21,24,25,26,27,28,31] ''' figure(num=None, figsize=None, dpi=None, facecolor=None,edgecolor=None, frameon=True) num:图像编号或名称,数字为编号 ,字符串为名称 figsize:指定figure的宽和高,单位为英寸;1英寸等于2.5cm,A4纸是 21*30cm的纸张 dpi参数指定绘图对象的分辨率,即每英寸多少个像素,缺省值为80 facecolor:背景颜色 edgecolor:边框颜色 frameon:是否显示边框 ''' # 设置图像大 plt.figure(figsize=(18, 8)) # 折线图 plt.plot( date, eurcny, color='r', linestyle='--', linewidth=15, marker='o', markersize=30, markerfacecolor='g', alpha=0.3, ) plt.plot(eurcny) # x轴自增 plt.grid(linewidth=0.2, alpha=0.5) # 显示网格
output_9_0.png