Python实验之Numpy库和matplotlib库的使用

一、实验内容描述
1、
根据下列图表数据,可视化出表中每个时间段的发生的各类灾害数量.(在一个直方图中表现出来)
Freeze Wind Flood Quake Hail
5year 66386 174296 75131 577908 32015
10year 58230 381139 78045 99308 160454
20year 89135 80552 152558 497981 603535
50year 78415 81858 150656 193263 69638
100year 139361 331509 343164 781380 52269

2、
在一片空旷的平地上,有一个酒鬼,他最初停留在原点的位置,这个酒鬼每走一步时,方向是不确定的,在经过时间t之后,我们希望计算出这个酒鬼与原点的距离。
这个酒鬼走了2000步(每步0.5米),向前走一步记为1,向后走一步记为-1,当计算距原点的距离时,就是将所有的步数进行累计求和。

二、调试过程
1、

import numpy as np
import matplotlib.pyplot as plt
import pandas as pd
'''
table(cellText=None, cellColours=None,cellLoc='right', colWidths=None,rowLabels=None, rowColours=None, rowLoc='left',
colLabels=None, colColours=None, colLoc='center',loc='bottom', bbox=None)
'''
data = [[ 66386, 174296,  75131, 577908,  32015],
        [ 58230, 381139,  78045,  99308, 160454],
        [ 89135,  80552, 152558, 497981, 603535],
        [ 78415,  81858, 150656, 193263,  69638],
        [139361, 331509, 343164, 781380,  52269]]
columns=('Freeze', 'Wind', 'Flood', 'Quake', 'Hail')

rows = ['%d year'% x for x in (100, 50, 20, 10, 5)]
df = pd.DataFrame(data, columns=('Freeze', 'Wind', 'Flood', 'Quake', 'Hail'),
                  index=rows)
print(df)

df.plot(kind='bar', grid=True, colormap='Blues_r',stacked=True,
        edgecolor='black',rot=0)
#创建堆叠图
plt.table(cellText = data,
          cellLoc = 'center',
          cellColours = None,
          rowLabels = rows,
          rowColours = plt.cm.BuPu(np.linspace(0, 0.5,5))[::-1],  # BuPu可替换成其他colormap
          colLabels = columns,
          colColours = plt.cm.Reds(np.linspace(0, 0.5,5))[::-1],
          rowLoc='right',
          loc='bottom')

plt.xticks([])
plt.show()

2、

import numpy as np
vector = np.random.choice([0,1],2000)
equal_to_zero = (vector==0)
vector[equal_to_zero] = -1
cum_sum = vector.cumsum()*0.5
print('酒鬼每一步距原点的距离(米):\n',cum_sum)
print('酒鬼距离原点正向最远的距离:{}米'.format(cum_sum[cum_sum.argmax()]))
print('酒鬼距离原点反向最远的距离:{}米'.format(cum_sum[cum_sum.argmin()]))
count = 0
if all(abs(i) < 15 for i in cum_sum):
    print('酒鬼最远也没走到15米')
else:
    for i in cum_sum:
        count += 1
        if i == 15 or i == -15:
            break
    print('首次大于或等于15米时,所走的步数:',count)

三、实验结果及分析
1、
在这里插入图片描述
2、
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值