python进行数据可视化

python中用来画图得包是matplotlib,可以尝试实现数据得可视化。

引用约定

from pylab import *
mpl.rcParams['font.sans-serif'] = ['SimHei']#解决中文乱码问题
from matplotlib import pyplot as plt
import random
import numpy as np
import matplotlib
import collections#引用技术类

散点图

a = [1,0,1,1,2,4,3,2,3,4,4,5,6,5,4,3,3,1,1,1]
b = [1,0,3,1,2,2,3,3,2,1 ,2,1,1,1,1,1,1,1,1,1]
plt.scatter(a,b)
plt.show()

实现结果:
在这里插入图片描述

折线图

x=range(2,26,2)
y=[15,13,14.5,17,20,25,26,26,24,22,18,15]
plt.plot(x,y,color='green',marker='o',linestyle='solid')
plt.title('一个图')#加标题
plt.ylabel('y轴')
plt.xlabel("x轴")

plt.show()


#做一个深入,1、调节图像的大小 2,、给图像加文字水印3、线条的样式4、绘制一些特殊的点
plt.savefig("./sig_size.png")#一种存储方式

实现效果
在这里插入图片描述

条形图

#绘制条形图以电影票房为例
a = ["战狼2","速度与激情8","功夫瑜伽","西游伏妖篇","变形金刚5:最后的骑士",
     "摔跤吧!爸爸","加勒比海盗5:死无对证","金刚:骷髅岛","极限特工:终极回归",
     "生化危机6:终章","乘风破浪","神偷奶爸3","智取威虎山","大闹天竺",
     "金刚狼3:殊死一战","蜘蛛侠:英雄归来","悟空传","银河护卫队2",
     "情圣","新木乃伊",]
b=[56.01,26.94,17.53,16.49,15.45,12.96,11.8,11.61,11.28,
   11.12,10.49,10.3,8.75,7.55,7.32,6.99,6.88,6.86,6.58,6.23]
_x=range((len(a)))
_y=b
plt.bar(_x,b,width=0.2,color="orange")
#设置数字与字符串对应
plt.xticks(_x,a,rotation=90)
plt.show()

movies = ["Annie Hall", "Ben-Hur", "Casablanca", "Gandhi", "West Side Story"]
num_oscars = [5, 11, 3, 8, 10]
# 条形的默认宽度是0.8,因此我们对左侧坐标加上0.1 # 这样每个条形就被放置在中心了 xs = [i + 0.1 for i, _ in enumerate(movies)]
# 使用左侧x坐标[xs]和高度[num_oscars]画条形图 plt.bar(xs, num_oscars)
plt.ylabel("所获奥斯卡金像奖数量")
plt.title("我最喜爱的电影")
# 使用电影的名字标记x轴,位置在x轴上条形的中心
plt.xticks([i + 0.5 for i, _ in enumerate(movies)], movies)
plt.show()

数据选自《数据科学入门》
实现效果:
在这里插入图片描述

一个关于histogram的技巧

用于统计计数

#统计学生成绩
grades=[83,95,91,87,70,0,85,100,67,73,77,0]
decile=lambda grade:grade//10*10
histogram=collections.Counter(decile(grade)for grade in grades)
plt.bar([x-4 for x in histogram.keys()],histogram.values(),8)
plt.axis([-5,105,0,5])
plt.xticks([10*i for i in range(11)])
plt.xlabel("十分相")
plt.ylabel("学生数")
plt.title("考试分布图")
plt.show()

histogram详说

绘制常用的函数图像

x = np.arange(1,11)
y =  2  * x +  5
plt.title("Matplotlib demo")
plt.xlabel("x axis caption")
plt.ylabel("y axis caption")
plt.plot(x,y)
plt.show()

实现效果
在这里插入图片描述

# 计算正弦和余弦曲线上的点的 x 和 y 坐标
x = np.arange(0,  3  * np.pi,  0.1)
y_sin = np.sin(x)
y_cos = np.cos(x)
# 建立 subplot 网格,高为 2,宽为 1
# 激活第一个 subplot
plt.subplot(2,  1,  1)
# 绘制第一个图像
plt.plot(x, y_sin)
plt.title('Sine')
# 将第二个 subplot 激活,并绘制第二个图像
plt.subplot(2,  1,  2)
plt.plot(x, y_cos)
plt.title('Cosine')
# 展示图像
plt.show()

实现结果
在这里插入图片描述

总结

后期的机器学习主要内容是利用数据集进行绘图分类;笔者困惑以后能在python式机器学习与spss统计的能感受到的区别。
一个段子:
今天一个机器学习学傻的人和同学一起去露营,那货说:晚上露营的时候我在外面守营,我守营的目的是为了自卫,如果有坏姐姐来,我就拿手枪打她。

发布了18 篇原创文章 · 获赞 0 · 访问量 1270

猜你喜欢

转载自blog.csdn.net/Zengmeng1998/article/details/104000767