目录
一、利用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-22 17 12 小雨
2022-11-23 16 11 多云
2022-11-24 19 11 多云
2022-11-25 18 10 阴
2022-11-26 19 10 多云
2022-11-27 21 14 多云
2022-11-28 23 15 小雨
2022-11-29 17 3 中雨
2022-11-30 2 -1 阴
2022-12-01 3 -2 阴
2022-12-02 7 0 晴
2022-12-03 7 5 小雨
2022-12-04 7 2 小雨
2022-12-05 6 0 晴
2022-12-06 9 1 阴
2022-12-07 7 6 小雨
点击“文件”=>“另存为”=>“选择位置”=>“保存类型”=>“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进行数据可视化的优势分析
Python语言在数据可视化领域具有显著的优势,下面详细分析了几个方面:
-
简单易上手: Python语法简单易学,对初学者十分友好。代码具有良好的可读性,容易理解和维护。这使得即便是没有编程经验的人,也能够轻松入门,并快速掌握数据可视化的基本技能。在数据处理的过程中,我们通常期望数据能够转化为可运算的数字形式,Python的简洁语法使得数据处理更加直观和可操作。
-
丰富的生态系统: Python在数据分析、交互式计算以及数据可视化方面有着丰富的生态系统。诸如NumPy、Matplotlib、Scikit-learn、Pandas和IPython等强大的库和工具,为科学计算提供了强大支持。特别是Pandas在处理中型数据方面表现卓越,已经成为数据分析领域的核心工具,显著提高了数据分析的效率。
-
强大的编程能力: Python不仅仅在数据分析方面表现出色,还可以应用于爬虫、游戏开发和自动化运维等多个领域。其灵活性和通用性使得Python成为解决各类业务问题的理想选择,促进了各个业务领域之间的融合。对于数据分析从业者而言,Python的强大编程能力为处理复杂问题提供了有力支持。
-
人工智能应用: 在人工智能领域,Python占据着重要地位。其简洁性、丰富的库和活跃的社区为人工智能应用提供了便利。即时性对于人工智能至关重要,而Python的简洁语法和丰富的数据库使得数据提取变得轻松,为人工智能提供了高效服务。
-
广泛的应用领域: Python不仅在数据分析领域闪耀,还在科学研究、工程领域、Web开发等多个领域得到广泛应用。其通用性使得学习Python成为一项具有长远前景的投资。
总体而言,Python语言凭借其简单易上手、丰富的生态系统、强大的编程能力以及在人工智能领域的应用,成为数据可视化的首选工具。对于数据分析从业者和初学者而言,学习Python语言将为其提供广泛的应用场景,增加职业竞争力,是一项明智的选择。