python数据可视化简易版 - 新闻资讯 - 云南小程序开发|云南软件开发|云南网站建设-昆明葵宇信息科技有限公司

159-8711-8523

云南网建设/小程序开发/软件开发

知识

不管是网站,软件还是小程序,都要直接或间接能为您产生价值,我们在追求其视觉表现的同时,更侧重于功能的便捷,营销的便利,运营的高效,让网站成为营销工具,让软件能切实提升企业内部管理水平和效率。优秀的程序为后期升级提供便捷的支持!

您当前位置>首页 » 新闻资讯 » 技术分享 >

python数据可视化简易版

发表时间:2020-10-19

发布人:葵宇科技

浏览次数:43

  • 比来日间在整机械进修和算法导论,做预判分析的时刻发明,经常用到几个画图代码,老是弄混。睡不着,深夜上线整顿一波,趁便加强一下记忆叭。写若干是若干,不可就日借居着补。。
  • 今天先整顿一波惯例画图操作。其实后来学了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()

图

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

在这里插入图片描述

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

  • 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()

在这里插入图片描述

  • 箱线图
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()

在这里插入图片描述

其实同样是画箱线图,调用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()

在这里插入图片描述

相关案例查看更多