matplotlib的基本使用方法(点线图、散点图、柱状图、多窗口)

本文用于学习matplotlib模块的基本使用方法(点线图、散点图、柱状图、多窗口)!!!

# -*- coding: utf-8 -*-

import numpy as np
import matplotlib.pyplot as plt
#pylab是matplotlib的一个子包
#import pylab as pl

#生成一维数据
x = np.linspace(-1, 1, 20)
y = 2*x + 2
y_ = x**2
print(x, y)

#定义一个图像窗口  定义图像窗口编号,大小
plt.figure(num=3, figsize=(8,8))
#绘制点线图 定义图像上的点,曲线颜色,曲线宽度,曲线类型, 添加图例在右上角
plt.plot(x, y, marker='o', color='red', linewidth=2.0, linestyle='--', label='linear line')
plt.plot(x, y_, label='square line')
plt.legend(loc='upper right')
#设置x y坐标轴范围
plt.xlim( (-2, 4) )
plt.ylim( (-2, 4) )
#设置x y坐标轴名称
plt.xlabel('x')
plt.ylabel('y')
#设置x y坐标轴刻度
x_ticks = np.linspace(-1, 1, 5)
y_ticks = np.linspace(-1, 3, 5)
plt.xticks( x_ticks )
plt.yticks( y_ticks )
#添加文本注释
plt.text(-1,1,r'text info', fontdict={'size':16,'color':'r'})
#标题
plt.title("A simple plot")
#显示图像
plt.show()


#生成标准正态分布的二维数组
x = np.random.normal(0, 1, 20)
y = np.random.normal(0, 1, 20)
color = np.arctan2(y, x)

#绘制散点图  定义散点大小,颜色,透明度
plt.scatter(x, y, s=75, c=color, alpha=.5 )
#设置x y坐标轴范围
plt.xlim(-2, 2)
plt.ylim(-2, 2)
#隐藏坐标轴
# plt.xticks(())
# plt.yticks(())
#显示图像
plt.show()


#生成柱状图的数据
n = 10
x = np.arange(n)
y1 = (1-x/float(n))*np.random.uniform(0.5, 1.0, n)
y2 = (1-x/float(n))*np.random.uniform(0.5, 1.0, n)
#绘制柱状图 定义柱体颜色,边框颜色
plt.bar(x, +y1, facecolor='#9999ff', edgecolor='white')
plt.bar(x, -y2, facecolor='#ff9999', edgecolor='white')
#设置x y坐标轴范围
plt.xlim(-2, n)
plt.ylim(-2, 2)
#隐藏坐标轴
# plt.xticks(())
# plt.yticks(())
#在柱体上方增加数值 定义文本框位置,横向居中对齐,纵向底部对齐
for i, j in zip(x, y1):
    plt.text(i, j+0.05, '%.2f'%j, ha='center', va='bottom')
for i, j in zip(x, y2):
    plt.text(i, -j-0.15, '%.2f'%j, ha='center', va='bottom')
#显示图像
plt.show()


#绘制多幅图
#产生测试数据
x = np.arange(1,10)
y = x
fig = plt.figure()
plt.figure()
plt.subplot(121)
plt.plot(x, y, color='green', label='fig1')
plt.legend()

plt.subplot(122)
plt.plot(x, y, color='red', label='fig2')
plt.legend()
plt.show()

参考资料:

1. 莫烦matpltlib教程 https://morvanzhou.github.io/tutorials/data-manipulation/plt/

猜你喜欢

转载自blog.csdn.net/attitude_yu/article/details/80752465