Python数据可视化分析

数据可视化

——通过Python实现

数据可视化,是关于数据视觉表现形式的科学技术研究。其中,这种数据的视觉表现形式被定义为,一种以某种概要形式抽提出来的信息,包括相应信息单位的各种属性和变量。

一、利用Matplotlib库实现数据可视化

1、Matplotlib库的安装

Windows+R,输入cmd启动CMD命令提示符控制器,输入指令
python pip -m install user_matplotlib
如果提示错误可考虑使用国内镜像
python pip install -i https://mirrors.aliyun.com/pypi/simple/ matplotlib
提示安装成功

Successfully installed pip-22.3.1

2、利用matplotlib实现绘制简单的图表

简单代码及注释如下

import matplotlib.pyplot as plt

x_values = range(1, 1001)  # X轴的值
y_values = [x ** 2 for x in x_values]  # Y轴的值
fig, ax = plt.subplots()  # fig画布,ax子图区域
ax.scatter(x_values, y_values, s=10, c=y_values, cmap=plt.cm.Greens)  # 绘制散点图
ax.grid(True)  # 打开网格
ax.grid(color='gray', ls='-.', lw=0.25)  # 设置网格颜色,线型,线宽
ax.set_title("Squares", fontsize=25)  # 设置图表标题
ax.set_xlabel("value", fontsize=15)  # 设置X轴标签
ax.set_ylabel("square value", fontsize=15)  # 设置Y轴标签
ax.tick_params(axis='both', labelsize=15)  # 设置刻度标签大小
ax.axis([0, 1100, 0, 1100000])  # 设置X轴坐标为0-1100,Y轴坐标为0-11000000
plt.savefig('squares_plt.png')  # 保存图片并将其命名为"squares_plt.png"
plt.show()  # 展示图表

效果图如下

简单代码解释
1.用import引入matplotlib.pyplot库并简写为plt
2.设定X轴数据与Y轴数据
3.创建fig画布,ax子图区域
4.利用scatter()方法绘制散点图并着色,本例中设置为依照Y值大小渐变绿色
5.打开并设置网格
6.设置图表标题,设置X轴与Y轴标签
7.设置X轴与Y轴坐标数据范围
8.保存图片并展示图表
ps:plt.savefig('squares_plt.png')一定要写在plt.show()前面,否则只会保存空白图片
其原理是plt.show()执行完毕后会生成一张新的空白图表导致plt.savefig('squares_plt.png')保存的是这张新的空白图表

二、导入csv文件中的数据并且进行更加复杂的数据可视化

1、通过csv文件记录数据

在excel中记录如下数据

时间最高温最低温天气
2022-11-221712小雨
2022-11-231611多云
2022-11-241911多云
2022-11-251810
2022-11-261910多云
2022-11-272114多云
2022-11-282315小雨
2022-11-29173中雨
2022-11-302-1
2022-12-013-2
2022-12-0270
2022-12-0375小雨
2022-12-0472小雨
2022-12-0560
2022-12-0691
2022-12-0776小雨

点击“文件”=>“另存为”=>“选择位置”=>“保存类型”=>“CSV UTF-8 (逗号分隔)(*.csv)”=>“保存”即可保存此文件

2.打开csv文件读取数据并进行可视化

本例中以11月23日10时通过《天气》app获取的栖霞区近期天气情况为数据绘制相关图表

具体代码如下

import csv
import matplotlib.pyplot as plt
from datetime import datetime

plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False
x = []
y1 = []
y2 = []
weather = []
kind = ["晴", "多云", "阴", "小雨", "中雨"]
s = [0, 0, 0, 0, 0]
with open("weather.csv", 'r', encoding='UTF-8') as csvfile:  # 打开csv文件
    reader = csv.reader(csvfile, delimiter=',')  # 读取csv文件
    header = next(reader)  # 跳过第一行
    for row in reader:
        currentDate = datetime.strptime(row[0], "%Y-%m-%d")  # 按格式读取时间
        x.append(currentDate)
        y1.append(int(row[1]))
        y2.append(int(row[2]))
        weather.append(row[3])
for i in weather:
    if i == "晴":
        s[0] = s[0] + 1
    if i == "多云":
        s[1] = s[1] + 1
    if i == "阴":
        s[2] = s[2] + 1
    if i == "小雨":
        s[3] = s[3] + 1
    if i == "中雨":
        s[4] = s[4] + 1
print(s)
fig, ax = plt.subplots()  # fig画布,ax子图区域
ax.grid(True)  # 打开网格
ax.grid(color='gray', ls='-.', lw=0.25)  # 设置网格颜色,线型,线宽
plt.plot(x, y1, label='最高温', c='pink', zorder=1)  # 绘制折线图
plt.plot(x, y2, label='最低温', c='orange', zorder=1)  # 绘制折线图
plt.scatter(x, y1, marker='*', c=y1, cmap='autumn_r', zorder=2)  # 绘制散点图作为折点标注
plt.scatter(x, y2, marker='o', c=y2, cmap='coolwarm', zorder=2)  # 绘制散点图作为折点标注
for i in range(len(x)):
    ax.text(x[i], y1[i], (y1[i]), c='steelblue', fontsize=12)  # 标注各点温度
for i in range(len(x)):
    ax.text(x[i], y2[i], (y2[i]), c='green', fontsize=12)  # 标注各点温度
plt.title("栖霞区近日天气(数据获取时间:11月23日10时)", fontsize=14)
ax.set_xlabel("日期", fontsize=10)
ax.set_ylabel("温度", fontsize=10)
fig.autofmt_xdate(rotation=45)  # 为了防止时间过长导致重叠而将其旋转45°
plt.legend()
plt.savefig('栖霞区近日天气.png')
plt.show()
fig, ax = plt.subplots()  # fig画布,ax子图区域
plt.pie(s, labels=kind, autopct="%1.2f%%", explode=[0, 0, 0, 0.1, 0])  # 非零值的饼脱离整个图
plt.title("栖霞区近日天气", fontsize=24)
plt.savefig('栖霞区近日天气饼图.png')
plt.show()

效果图如下

三、使用Python进行数据可视化的优势分析

1.简单易上手

Python语法简单的多,代码十分容易被读写,适合刚入门的新手学习。我们在处理数据的时候,一般都希望数据能够转化成可运算的数字形式,这样,不管是没学过编程的人还是学过编程的人都能够看懂这个数据。

2.Python在数据分析和交互、探索性计算以及数据可视化等方面都显得比较活跃

python拥有numpy、matplotlib、scikit-learn、pandas、ipython等工具在科学计算方面十分有优势,尤其是pandas,在处理中型数据方面可以说有着无与伦比的优势,已经成为数据分析中流砥柱的分析工具。

3.编程能力强大

python有些非常强大的数据分析能力,并且还可以利用Python进行爬虫,写游戏,以及自动化运维,在这些领域中有着很广泛的应用,这些优点就使得一种技术去解决所有的业务服务问题,这就充分的体现的Python有利于各个业务之间的融合。如果使用Python,能够大大的提高数据分析的效率。

4.人工智能

人工智能需要的是即时性,而Python是一种非常简洁的语言,同时有着丰富的数据库以及活跃的社区,这样就能够轻松的提取数据,从而为人工智能做出优质的服务。

Python语言得益于它的简单方便使得在大数据、数据分析以及人工智能方面都有十分明显的存在感,对于数据分析从业者以及想要进入数据分析从业者的人来说,简单易学容易上手的优势也是一个优势,要做好数据分析,一定要学会Python语言。

——Written by Ryan_LuoYuxuan

文章出处登录后可见!

已经登录?立即刷新

共计人评分,平均

到目前为止还没有投票!成为第一位评论此文章。

(0)
xiaoxingxing的头像xiaoxingxing管理团队
上一篇 2023年11月7日
下一篇 2023年11月7日

相关推荐