——通过Python实现
数据可视化,是关于数据视觉表现形式的科学技术研究。其中,这种数据的视觉表现形式被定义为,一种以某种概要形式抽提出来的信息,包括相应信息单位的各种属性和变量。
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
简单代码及注释如下
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')
保存的是这张新的空白图表
在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)”=>“保存”即可保存此文件
本例中以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拥有numpy、matplotlib、scikit-learn、pandas、ipython等工具在科学计算方面十分有优势,尤其是pandas,在处理中型数据方面可以说有着无与伦比的优势,已经成为数据分析中流砥柱的分析工具。
python有些非常强大的数据分析能力,并且还可以利用Python进行爬虫,写游戏,以及自动化运维,在这些领域中有着很广泛的应用,这些优点就使得一种技术去解决所有的业务服务问题,这就充分的体现的Python有利于各个业务之间的融合。如果使用Python,能够大大的提高数据分析的效率。
人工智能需要的是即时性,而Python是一种非常简洁的语言,同时有着丰富的数据库以及活跃的社区,这样就能够轻松的提取数据,从而为人工智能做出优质的服务。
Python语言得益于它的简单方便使得在大数据、数据分析以及人工智能方面都有十分明显的存在感,对于数据分析从业者以及想要进入数据分析从业者的人来说,简单易学容易上手的优势也是一个优势,要做好数据分析,一定要学会Python语言。
——Written by Ryan_LuoYuxuan