利用python 进行数据分析 第8章 (1)

绘图和可视化

绘图引用  import matplotlib.pyplot as plt 

matplotlib 的图像都位于Figure  对象中。可以用plt.figure 创建一个新的Figure:

flg=plt.figure(),   plt.figure 有一些选项,特别是figsize,它用于确保当图片保存到磁盘时具有一定的大小和纵横比。

不能通过空Figure 绘图。必须用add_subplot 创建一个或多个subplot才行:

ax1=fig.add_subplot(2,2,1)

ax2 = fig.add_subplot(2, 2, 2)
ax3 = fig.add_subplot(2, 2, 3)

from numpy.random import randn
plt.plot(randn(50).cumsum(), 'k--')

plt.show()

'k--'  是一个线型选项,用于告诉matplotlib 绘制黑色虚线图。

plt.subplots 可以创建一个新的Figure,并返回一个已含有创建的subplot对象的Numpy 数组:

fig,axes=plt.subplots(2,3)

调整subplot周围的间距

plt.subplots_adjust(left=None, bottom=None, right=None, top=None,

                wspace=None, hspace=None)

wspace和hspace用于控制宽度和高度的百分比,可以用作subplot之间的间距。下面是一个简单的例子

fig, axes = plt.subplots(2, 2, sharex=True, sharey=True)
for i in range(2):
    for j in range(2):
        axes[i, j].hist(randn(500), bins=50, color='k', alpha=0.5)

plt.subplots_adjust(wspace=0, hspace=0)


颜色、标记和线型

matplotlib的plot函数接受一组x和y坐标,还可以接受表示颜色和线型的字符串缩写。例如,要根据x和y绘制绿色虚线,可以执行如下代码:

ax.plot(x,y,'g--')

更为明确的方式也能得到同样的效果:

ax.plot(x,y,linestyle='--', color='g')

线型图还可以加上一些标记(marker),以强调实际的数据点。标记也可以放到格式化字符串中,但标记类型和线型必须放到颜色后面,如下所示:

plt.plot(randn(30).cumsum(),'ko--')


还可以将其写为更明确的形式:

plt.plot(randn(30).cumsum(),color='k',linestyle='--',marker='o')

在线型图中,非实际数据点默认是按线性方式插值的。可以通过drawstyle选项修改:

data = randn(30).cumsum()

plt.plot(data, 'k--', label='Default')
plt.plot(data, 'k-', drawstyle='steps-post', label='steps-post')
plt.legend(loc='best')


通过一个例子进行演示
fig = plt.figure(); ax = fig.add_subplot(1, 1, 1)
ax.plot(randn(1000).cumsum())

刻度、标签和图例


要修改X轴的刻度,最简单的办法是使用set_xticks 和 set_xticklabels。前者告诉matplotlib 要将刻度放在数据范围中的哪些位置,默认情况下,这些位置也就是刻度标签。但我们可以通过set_xticklabels 将任何其他的值用作标签:
ticks = ax.set_xticks([0, 250, 500, 750, 1000])
labels = ax.set_xticklabels(['one', 'two', 'three', 'four', 'five'],
                            rotation=30, fontsize='small')
最后,再用set_xlabel 为x轴设置一个名字,并用set_title 设置一个标题:
ax.set_title('My first matplotlib plot')
ax.set_xlabel('Stages')

添加图例

图例(legend)是另一种用于标识图表元素的重要工具。添加图例的方式有二。最简单的是在添加subplot的时候传入label参数:
fig = plt.figure(); ax = fig.add_subplot(1, 1, 1)
ax.plot(randn(1000).cumsum(), 'k', label='one')
ax.plot(randn(1000).cumsum(), 'k--', label='two')
ax.plot(randn(1000).cumsum(), 'k.', label='three')
在此之后,你可以调用ax.legend() 或 plt.legend() 来自动创建图例:
ax.legend(loc='best')
‘’best‘’是个不错的选择,它会选择最不碍事的位置。

注解以及在Subplot 上绘图

注解可以通过text , arrow 和 annotate 等函数进行添加   ,text 可以将文本绘制在图表的指定坐标(x,y),还可以加上一些自定义格式
ax.text(x,y,'hello world!',family='monospace',fontsize=10)
要在图表添加一个图形,你需要创建一个块对象shp,然后通过ax.add_patch(shp) 将其添加到subplot中,如下所示:
fig = plt.figure()
ax = fig.add_subplot(1, 1, 1)


rect = plt.Rectangle((0.2, 0.75), 0.4, 0.15, color='k', alpha=0.3)
circ = plt.Circle((0.7, 0.2), 0.15, color='b', alpha=0.3)
pgon = plt.Polygon([[0.15, 0.15], [0.35, 0.4], [0.2, 0.6]],
                   color='g', alpha=0.5)

ax.add_patch(rect)
ax.add_patch(circ)
ax.add_patch(pgon)
plt.show()


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值