python画数据图

之前学习了 matplotlib.pyplot函数的使用方法,今天研究一下新工具pylab:

pylab 是 matplotlib 面向对象绘图库的一个接口,它的语法和 Matlab 十分相近,主要的绘图命令和 Matlab 对应的命令有相似的参数。简单的实例:

from pylab import *
X = np.linspace(-np.pi, np.pi, 256,endpoint=True)
C,S = np.cos(X), np.sin(X)
plot(X,C)
plot(X,S)
show()

X 是一个 numpy 数组,包含了从 −π到 +π等间隔的 256 个值。C 和 S 则分别是这 256 个值对应的余弦和正弦函数值组成的numpy 数组。另外,Matplotlib 的默认配置都允许用户自定义。你可以调整大多数的默认配置:图片大小和分辨率(dpi)、线宽、颜色、风格、坐标轴、坐标轴以及网格的属性、文字与字体属性等。

from pylab import *

# 创建一个 8 * 6 点的图,设置分辨率为 80
figure(figsize=(8,6), dpi=80)

# 创建一个新的 1 * 1 的子图,接下来的图样绘制在其中的第 1 块(唯一的一块)
subplot(1,1,1)

X = np.linspace(-np.pi, np.pi, 256,endpoint=True)
C,S = np.cos(X), np.sin(X)

# 绘制余弦曲线,使用蓝色的、连续的、宽度为 1 (像素)的线条
plot(X, C, color="blue", linewidth=1.0, linestyle="-")

# 绘制正弦曲线,使用红色的、连续的、宽度为 1 (像素)的线条
plot(X, S, color="red", linewidth=1.0, linestyle="-")

# 设置横轴的上下限
xlim(-4.0,4.0)
# 设置横轴记号
xticks(np.linspace(-4,4,9,endpoint=True))

# 设置纵轴的上下限
ylim(-1.0,1.0)
# 设置纵轴记号
yticks(np.linspace(-1,1,5,endpoint=True))

# 在屏幕上显示
show()

我们在图的左上角添加一个图例。为此,我们只需要在 plot 函数里以「键 – 值」的形式增加一个参数。

from pylab import *

# 创建一个 8 * 6 点的图,设置分辨率为 80
figure(figsize=(8,6), dpi=80)

# 创建一个新的 1 * 1 的子图,接下来的图样绘制在其中的第 1 块(唯一的一块)
subplot(1,1,1)

X = np.linspace(-np.pi, np.pi, 256,endpoint=True)
C,S = np.cos(X), np.sin(X)

# 绘制曲线,添加图例
plot(X, C, color="blue", linewidth=1.0, linestyle="-", label="cos")
plot(X, S, color="red",  linewidth=1.5, linestyle="-", label="sin")
legend(loc='upper left')

# 设置横轴的上下限
xlim(-4.0,4.0)
# 设置横轴记号
xticks(np.linspace(-4,4,9,endpoint=True))

# 设置纵轴的上下限
ylim(-1.0,1.0)
# 设置纵轴记号
yticks(np.linspace(-1,1,5,endpoint=True))

# 在屏幕上显示
show()

Matplotlib 中的「图像」指的是用户界面看到的整个窗口内容。在图像里面有所谓「子图」。子图的位置是由坐标网格确定的,而「坐标轴」却不受此限制,可以放在图像的任意位置。我们已经隐式地使用过图像和子图:当我们调用 plot 函数的时候,matplotlib 调用 gca() 函数以及 gcf() 函数来获取当前的坐标轴和图像;如果无法获取图像,则会调用 figure() 函数来创建一个——严格地说,是用 subplot(1,1,1) 创建一个只有一个子图的图像。

from pylab import *

# 创建一个 8 * 6 点的图,设置分辨率为 80
figure(figsize=(8,6), dpi=80)

# 创建一个新的 2 * 1 的子图,接下来的图样绘制在其中的第 1subplot(2,1,1)

X = np.linspace(-np.pi, np.pi, 256,endpoint=True)
C,S = np.cos(X), np.sin(X)

# 绘制曲线,添加图例
plot(X, C, color="blue", linewidth=1.0, linestyle="-", label="cos")
legend(loc='upper left')
# 创建一个新的 2 * 1 的子图,接下来的图样绘制在其中的第 2subplot(2,1,2)
plot(X, S, color="red",  linewidth=1.5, linestyle="-", label="sin")
legend(loc='upper left')

# 设置横轴的上下限
xlim(-4.0,4.0)
# 设置横轴记号
xticks(np.linspace(-4,4,9,endpoint=True))

# 设置纵轴的上下限
ylim(-1.0,1.0)
# 设置纵轴记号
yticks(np.linspace(-1,1,5,endpoint=True))

# 在屏幕上显示
show()

当然,还可以绘制其他不同种类的图:散点图,柱状图,3D图等

from pylab import *

n = 1000
X = np.random.normal(0,1,n)
Y = np.random.normal(0,1,n)
#散点图
scatter(X,Y)
show()

from pylab import *

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)
#柱状图
bar(X, +Y1, facecolor='#9988ff', edgecolor='red')
bar(X, -Y2, facecolor='#ff9966', edgecolor='red')

for x,y in zip(X,Y1):
    text(x+0.4, y+0.05, '%.2f' % y, ha='center', va= 'bottom')

ylim(-1.25,+1.25)
show()

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

是空空呀

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值