python编程可视化小程序_python数据可视化简易版

比来日间在整机械进修和算法导论,做预判分析的时刻发明,经常用到几个画图代码,老是弄混。睡不着,深夜上线整顿一波,趁便加强一下记忆叭。写若干是若干,不可就日借居着补。。

今天先整顿一波惯例画图操作。其实后来学了pandas里的 seaborn 库的时刻,才发明有更好看标图

import matplptlib.pypplot as plt

import pandas as pd

# 攫取一个分类明白的数据集csv文件,文件里数据分了四类

# 数据长如许子,先大年夜致head()前五行看一下吧

# dataset,x,y

I,10.0,8.04

I,8.0,6.95

I,13.0,7.58

I,9.0,8.81

I,11.0,8.33

oh=pd.read_csv('anscombe.csv')

print(oh)

# 取数正人集

oh_1=oh[oh['dataset'] == 'I']

oh_2=oh[oh['dataset'] == 'II']

oh_3=oh[oh['dataset'] == 'III']

oh_4=oh[oh['dataset'] == 'IV']

plt.plot(oh_1['x'],oh_1['y'])

plt.show()

# 如不雅想用它画圆点,可以给plt.plot传递一个‘o’参数

plt.plot(oh_1['x'],oh_1['y'],'o')

plt.show()

# 如今有四个 子数据集,要把他们放在一路,所以先创建一个画布

# 就弄一个2x2的画布吧

fig=plt.figure()

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

axis2=fig.add_subplot(2,2,2)

axis3=fig.add_subplot(2,2,3)

axis4=fig.add_subplot(2,2,4)

# 哈哈然后出图吧

axes1.plot(oh_1['x'],oh_1['y'],'o')

axes2.plot(oh_2['x'],oh_2['y'],'o')

axes3.plot(oh_3['x'],oh_3['y'],'o')

axes4.plot(oh_4['x'],oh_4['y'],'o')

#向各个子图添加标签,并应用tight_layout办法确保各个坐标轴彼此分开

axes1.set_title('oh_1')

axes2.set_title('oh_2')

axes3.set_title('oh_3')

axes4.set_title('oh_4')

#为整幅图添加一个大年夜标题

fig.suptitle('anscomble data')

plt.show()

#紧凑构造

fig.tight_layout()

watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L1ZlbHBybzc3OA==,size_16,color_FFFFFF,t_70#pic_center

单变量画图

单变量做频数分析的时刻,画图是最直不雅的,样本频数特别小的,我一般也就归并到其余小样本里了。直方图就够用,选一个变量多一点的文件吧

import pandas as pd

tips=pd.read_csv('tips.csv')

print(tips)

# tips文件 数据 截一下前五行

# 就长如许吧

""" "total_bill","tip","sex","smoker","day","time","size"

16.99,1.01,"Female","No","Sun","Dinner",2

10.34,1.66,"Male","No","Sun","Dinner",3

21.01,3.5,"Male","No","Sun","Dinner",3

23.68,3.31,"Male","No","Sun","Dinner",2

24.59,3.61,"Female","No","Sun","Dinner",4

"""

# 大年夜概就是对 餐桌文化,比如不合性别,花费时光,餐桌级别等不合群体的花费账单做个分析,totalbill 即花费账单。

# ok 画图吧

import matplotlib.pyplot as plt

fig=plt.figure()

# 画布啊画布!

axes1=fig.add_subplot(1,1,1)

# 画布一行一列,放第一个

axes1.hist(tips['total_bill'],bins=10)

# 直方图表达式,y轴衡量的是totalbill,x轴以10为组距

axes1.set_title('histogram of total bill')

axes1.set_xlabel('Frequency')

axes1.set_ylabel('total bill')

plt.show()

watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L1ZlbHBybzc3OA==,size_16,color_FFFFFF,t_70#pic_center

双变量

双变量画图,两两比较,妙弗成言。就照样用刚才的那个花费账单数据吧

1)散点图

scatter_plot=plt.figure()

axes1=plt.add_subplot(1,1,1)

axes1.scatter(tips['total_bill'],tips['tip'])

# 再搞一下标签就很完美

axes1.set_xlabel('total bill')

axes1.set_ ylabel('tip')

plt.show()

watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L1ZlbHBybzc3OA==,size_16,color_FFFFFF,t_70#pic_center

箱线图

boxplot=plt.figure()

axes1=boxplot.add_subplot(1,1,1)

axes1.boxplot(

# 箱线图的第一参数是数据

# 因为要绘制多块数据,是以必须把每块数据放入列表中

[tips[tips['sex']=='Female']['tip'],

tips[tips['sex']=='Male']['tip']],

#列表中第一个数据表示分类类别,第二表示y轴数据

labels=['Female','Male']

#展示标签

)

axes1.set_xlabel('sex')

axes1.set_ylabel('Tip')

axes1.set_title('boxplot of tips by sex')

plt.show()

watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L1ZlbHBybzc3OA==,size_16,color_FFFFFF,t_70#pic_center

其实同样是画箱线图,调用seaborn库 代码更便捷,可调节的格式也比较多。留给下次睡不着整顿吧。。

多变量数据

其实多变量说白了就是再双变量的基本上,区分了色彩,大年夜小,外形,增长了信息量。最繁琐的办法就是用函数创建一个带色彩的变量。

比如在性别上区分色彩。

def recode_sex(sex):

if sex =='Famale':

return 0

else:

return 1

tips['sex_color']=tips['sex'].apply(recode_sex)

# apply 是对列调用函数的好办法,这行代码 赋值给tips数据集一个带色彩参数的新列 ' sex_color '

# 下面开端画图吧

# 创建画布

scatter_plot=plt.figure()

axes1=scatter_plot.add_subplot(1,1,1)

axes1.scatter(

x=tips['total_bill'],

y=tips['tips'],

s=tips['size']*10,

# 增长一个‘size’ 变量,用大年夜小*10倍的大年夜小区分

c=tips['sex_color']

alpha=0.5

# 增长点透明度,以表示重叠的点

)

# 最后添加标题

axes1.set_title('total bill vs tip colored by sex and sized by size')

axes1.set_xlabel('total bill')

axes1.set_ylabel('tip')

plt.show()

watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L1ZlbHBybzc3OA==,size_16,color_FFFFFF,t_70#pic_center

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值