python画图 做表

生成随机数:

np.random.seed(n) 控制两次随机生成的数相不相同

np.random.seed(n)函数用于生成指定随机数。
把seed()中的参数比喻成“堆”;eg. seed(5):表示第5堆种子。
只调用一次seed(),两次的产生随机数不同

		import numpy as np
		np.random.seed(1)
		
		L1 = np.random.randn(3, 3)
		L2 = np.random.randn(3, 3)
		print(L1)
		print(L2)
		np.random.seed(1)
		L1 = np.random.randn(3, 3)
		np.random.seed(1)
		L2 = np.random.randn(3, 3)
		print(L1)
		print(L2)
numpy.random.randn() 控制生成几维 什么分布的数据

https://blog.csdn.net/u012149181/article/details/78913167

 x_ticks = np.linspace(-5, 4, 10)  # 产生区间在-5至4间的10个均匀数值
 x=np.random.randint(0,100,100)#生成【0-100】之间的100个数据,即 数据集

##### 画图--曲线图(x,y)plt.plot(x,y)
plt.plot(x,y)
plt.show()
https://zhuanlan.zhihu.com/p/258106097


##### 画图--直方图(把数据按照所属的范围归类 画直方图)plt.hist(a,bins= 20)
设置区间

#一个参数 默认起点0,步长为1 输出:[0 1 2]
a = np.arange(3)

#两个参数 默认步长为1 输出[3 4 5 6 7 8]
a = np.arange(3,9)

#三个参数 起点为0,终点为3,步长为0.1 输出[ 0. 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1. 1.1 1.2 1.3 1.4 1.5 1.6 1.7 1.8 1.9 2. 2.1 2.2 2.3 2.4 2.5 2.6 2.7 2.8 2.9]
a = np.arange(0, 3, 0.1)

把数据按区间分类

plt.hist(x,bins,color=‘fuchsia’,alpha=0.5)#alpha设置透明度,0为完全透明

a = np.random.rand(100)
plt.hist(a,bins= 20) #把数值进行20等分
#在构建直方图之前,我们需要先定义好bin(把值分成多少等份),也就是说我们需要先把连续值划分成不同等份,然后计算每一份里面数据的数量
fig, axes = plt.subplots(2, 2) # 设置生成图片的大小 此处是一个2*2的图

plt.ylim(0,15) #限制y轴高度:0→15
plt.legend() #使图片的信息设置生效
plt.xlabel(“x-axis”) #设置x轴的标签
plt.ylabel(“y-axis”) #设置y轴的标签
plt.xlim(0,100)#设置x轴分布范围

#运行
#当前shell
export MPLBACKEND=Agg
#只为当前脚本test.py
MPLBACKEND=Agg python test.py

import matplotlib
matplotlib.use(‘Agg’)

https://zhuanlan.zhihu.com/p/111108841
若要生成html格式文本
def map_histogram(data):
    plt.title("Distribution of running results")
    plt.xlabel("run results")
    plt.ylabel("frequency")
    plt.hist(data, bins=100, normed=True)
    figfile = BytesIO()
    plt.savefig(figfile, format='png')
    figfile.seek(0)
    figdata_png = base64.b64encode(figfile.getvalue())  # to base64
    figdata_str = str(figdata_png)

    fig = '<img src=\"data:image/png;base64,{}\"/>'.format(figdata_str)
    return fig


##### 统计表格数据属性
构建DataFrame--作用有两个:
①构建成dataframe之后得到表格格式 就像excel一样 可以对数据进行处理 得到各种属性 
②对得到的数据构建成表格 方便进行展示

import pandas as pd
df = pd.DataFrame([‘value1’:[1, 2, 3], ‘value2’:[4, 5, np.nan], ‘value3’:[7, 8, 9]], index=[‘A’, ‘B’, ‘C’], columns=[‘c1’, ‘c2’, ‘c3’])

data0=[1,2,3]
df = pd.DataFrame(data0) #此时的构建只有一列 而且没有行列属性 index columns


把数据按行相加和按列相加

print(df)
‘’’
c1 c2 c3
A 1 2 3.0
B 4 5 NaN
C 7 8 9.0
‘’’

#按照每一列 相加,返回 或axis=0
print(df.sum())
‘’’
c1 12.0
c2 15.0
c3 12.0
dtype: float64
‘’’

# 指定 axis, 按照每一行相加
print(df.sum(axis=1))
‘’’
A 6.0
B 9.0
C 24.0
dtype: float64

https://www.cnblogs.com/wenqiangit/p/11252784.html

取第二行的数据

df.ix[1] #取第2行数据

https://blog.csdn.net/tanlangqie/article/details/78656588?spm=1001.2101.3001.6650.1&utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7ERate-1.pc_relevant_paycolumn_v3&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7ERate-1.pc_relevant_paycolumn_v3&utm_relevant_index=2

取其discribe
 print(df.describe())
 
DataFrame中常见的其他方法:得到的是一个前面有索引的series结构数据 需要ix[1]得到具体数

df.count() #非空元素计算
df.min() #最小值
df.max() #最大值
df.idxmin() #最小值的位置,类似于R中的which.min函数
df.idxmax() #最大值的位置,类似于R中的which.max函数
df.quantile(0.1) #10%分位数
df.sum() #求和
df.mean() #均值
df.median() #中位数
df.mode() #众数
df.var() #方差
df.std() #标准差
df.mad() #平均绝对偏差
df.skew() #偏度
df.kurt() #峰度
df.describe() #一次性输出多个描述性统计指标



(df == 0).astype(int).sum().ix[0]
判断df中每一个数值  为0则为true 通过.astype(int) 把其转为1  通过sun求所有1的和  通过ix取到series中的值


生成html文本
def html(table, fig, list):
	html_string = '''
    <html>
        <head>
            <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.1/css/bootstrap.min.css">
            <style>body{ margin:0 100; background:whitesmoke; }</style>
        </head>
        <body>
            <h1>Tensor Analysis</h1>


            <h2>Section 1: Results of various indicators</h2>
            ''' + table + '''

            <h2>Section 2: Distribution of running results</h2>
            <iframe width="1000" height="550" frameborder="0" seamless="seamless" scrolling="no" \
            ''' + fig + ''' .embed?width=800&height=550"></iframe>

            <h2>Section 3: Value</h2>
            ''' + list + '''

        </body>
    </html>'''
    return html_string

data_html = html(data_dis, data_fig, data_list)
f = open('{}/report.html'.format(args.output), 'w')
f.write(data_html)
f.close()


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值