一、利用Matplotlib库实现数据可视化
1、Matplotlib库的安装
Windows+R,输入cmd启动CMD命令提示符控制器,如若不行可以在python文件中打开s开头的文件打开后在里面使用cmd,输入指令:
python pip -m install user_matplotlib
如果提示错误可考虑使用国内镜像
python pip install -i https://mirrors.aliyun.com/pypi/simple/ matplotlib
提示安装成功
Successfully installed pip-22.3.1
Matplotlib概念
Matplotlib 是 Python 中常用的 2D 绘图库,它能轻松地将数据进行可视化,作出精美的图表。Matplotlib 模块很庞大,其中最常用的一个子模块是 pyplot
对数图
所谓对数图,实际上就是使用对数坐标绘制的图形。对于对数刻度来说,其间隔表示的是变量的值在数量级上的变化,这与线性刻度有很大的不同。对数图又分为两种不同的类型,其中一种称为双对数图,它的特点是两个坐标轴都采用对数刻度,对应的matplotlibh函数是matplotlib.pyplot..loglog()。半对数图的一个坐标轴采用线性刻度,另一个坐标轴使用对数刻度,它对应的matplotlib API是semilogx()函数和semilogy()函数,在双对数图上,幂律表现为直线;在半对数图上,直线则代表的是指数律。
摩尔定律大意为集成电路上晶体管的数量每两年增加一倍。在https://en.wikipedia.org/wiki/Transistor_count#Microprocessors页面有一个数据表,记录了不同年份微处理器上晶体管的数量。我们为这些数据制作一个CSV文件,名为transcount.csv,其中只包含晶体管数量和年份值。
散点图
散点图可以形象展示直角坐标系中两个变量之间的关系,每个数据点的位置实际上就是两个变量的值。泡式图是对散点图的一种扩展。在泡式图中,每个数据点都被一个气泡所包围,它由此得名;而第三个变量的值正好可以用来确定气泡的相对大小。
在https://en.wikipedia.org/wiki/Transistor_count#GPU页面上,有个记录GPU晶体数量的数据表,我们用这些晶体管数量年份数据新建表gpu_transcount.csv。借助matplotlib API提供的scatter()函数绘制散点图。
2、利用matplotlib加numpy实现绘制简单的图表
import numpy as np
import matplotlib.pyplot as plt
data = np.arange(0,1.1,0.01)
plt.title('lines')
plt.xlabel('x')
plt.ylabel('y')
plt.xlim((0,1))
plt.ylim((0,1))
plt.plot(data,data**2)
plt.plot(data,data**4)
plt.legend(['y=x^2','y=x^4'])
# plt.savefig()
plt.show()
简单代码解释
1.用import引入matplotlib.pyplot库并简写为plt
2.设定X轴数据与Y轴数据
3.创建fig画布,ax子图区域
4.利用scatter()方法绘制散点图并着色,本例中设置为依照Y值大小渐变绿色
5.打开并设置网格
6.设置图表标题,设置X轴与Y轴标签
7.设置X轴与Y轴坐标数据范围
8.保存图片并展示图表
二、导入xlsx文件中使用pandas导出数据并进行更加复杂的数据可视化
import pandas as pd
#import xlrd
stroke_info = pd.read_excel('D:\python数据分析/healthcare-dataset-stroke.xlsx')
age_abs = pd.read_excel('D:\python数据分析/healthcare-dataset-age_abs.xlsx')
link_outer = pd.merge(stroke_info,age_abs,how='outer',left_on='编号',right_on='编号')
age = link_outer['年龄']
age_nomal = []
for i in age:
if i > 0.0:
age_nomal.append(i)
print(age_nomal)
age_nomal1 = [x for x in age_nomal if x==int(x)]
print(age_nomal1)
x = np.linspace(0,4*np.pi)
print(x)
y=np.sin(x)
plt.plot(x,y,label='$sin(x)$')
plt.title('sin(x)')
plt.xlabel('x')
plt.ylabel('y')
plt.show()
plt.rcParams['lines.linestyle']=':'
plt.rcParams['lines.linewidth']=1.5
plt.rcParams['lines.marker']='h'
plt.plot(x,y,label='$sin(x)$')
plt.title('sin(x)')
plt.xlabel('x')
plt.ylabel('y')
plt.show()
三、使用Python进行数据可视化的优势分析
1.简单易上手
Python语法简单的多,代码十分容易被读写,适合刚入门的新手学习。我们在处理数据的时候,一般都希望数据能够转化成可运算的数字形式,这样,不管是没学过编程的人还是学过编程的人都能够看懂这个数据。
2.Python在数据分析和交互、探索性计算以及数据可视化等方面都显得比较活跃
python拥有numpy、matplotlib、scikit-learn、pandas、ipython等工具在科学计算方面十分有优势,尤其是pandas,使用得最为广泛
3.编程能力强大
python有些非常强大的数据分析能力,并且还可以利用Python进行爬虫,写游戏,以及自动化运维,在这些领域中有着很广泛的应用,这些优点就使得一种技术去解决所有的业务服务问题,这就充分的体现的Python有利于各个业务之间的融合。如果使用Python,能够大大的提高数据分析的效率。
4.人工智能
人工智能需要的是即时性,而Python是一种非常简洁的语言,同时有着丰富的数据库以及活跃的社区,这样就能够轻松的提取数据,从而为人工智能做出优质的服务。
数据分析初始阶段,通常都要进行可视化处理。数据可视化旨在直观展示信息的分析结果和构思,令某些抽象数据具象化,这些抽象数据包括数据测量单位的性质或数量。本章用的程序库matplotlib是建立在Numpy之上的一个Python图库,它提供了一个面向对象的API和一个过程式类的MATLAB API,他们可以并行使用。本文涉及的主题有:
matplotlib简单绘图
对数图
散点图
图例和注解
三维图
pandas绘图
时滞图
自相关图
Plot.ly