qianshang666 发表于 2021-3-19 17:08

【笔记】python数据分析——浅谈matplotlib可视化

本帖最后由 qianshang666 于 2021-3-19 17:12 编辑

## 往期数据分析笔记
[【笔记】python数据分析——numpy初识1](https://www.52pojie.cn/thread-1381772-1-1.html)
[【笔记】python数据分析——numpy初识2](https://www.52pojie.cn/thread-1382691-1-1.html)
[【笔记】python数据分析——变换与编程中的轴](https://www.52pojie.cn/thread-1383508-1-1.html)
[【笔记】python数据分析——numpy随机数函数](https://www.52pojie.cn/thread-1386199-1-1.html)
[【笔记】python数据分析——numpy数组索引及切片](https://www.52pojie.cn/thread-1386446-1-1.html)
[【笔记】python数据分析——元素级运算及通用函数](https://www.52pojie.cn/thread-1387623-1-1.html)
[【笔记】python数据分析——条件逻辑运算](https://www.52pojie.cn/thread-1387803-1-1.html)
[【笔记】python数据分析——统计学运算](https://www.52pojie.cn/thread-1387994-1-1.html)
[【笔记】python数据分析——矩阵相乘](https://www.52pojie.cn/thread-1388004-1-1.html)
[【笔记】python数据分析——应用案例之图像负片](https://www.52pojie.cn/thread-1389426-1-1.html)
[【笔记】python数据分析——pandas初识](https://www.52pojie.cn/thread-1390118-1-1.html)
[【笔记】python数据分析——pandas之增删查改](https://www.52pojie.cn/thread-1390267-1-1.html)
[【笔记】python数据分析——pandas可视化之线型图](https://www.52pojie.cn/thread-1390796-1-1.html)
[【笔记】python数据分析——pandas可视化之柱状图](https://www.52pojie.cn/thread-1391027-1-1.html)
[【笔记】python数据分析——pandas可视化之直方图和密度图](https://www.52pojie.cn/thread-1392157-1-1.html)
[【笔记】python数据分析——pandas可视化之散点图](https://www.52pojie.cn/thread-1392568-1-1.html)
[【笔记】python数据分析——pandas可视化之总结案例](https://www.52pojie.cn/thread-1393766-1-1.html)
## 为什么是浅谈呢?
因为现在市面上用的最多的可视化基本上都是用pycharts来画的,而且那个库很简单,画出来的图也都很精美,但是matplotlib的需求现在也还是存在的,我们常在论文中需要这种类型的图片,所以今天就带大家了解一下
## matplotlib之线型图
### 构建数据
```
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt

data = {
    'name':['张三','李四','王五','赵六'],
    'math':['40','80','99','78']
}

df = pd.DataFrame(data)
print(df)
```
运行结果:
name math
0   张三   40
1   李四   80
2   王五   99
3   赵六   78

前三行是导包,我相信看过之前笔记的兄弟们已经非常了解了
之后我先是构建了一个成绩表,然后将他们转为了DataFrame数据结构,然后将其输出,运行结果就是输出的结果
### 创建图表
```
plt.plot(df['name'],df['math'])
plt.show()
```
运行图:

图虽然出来了,但是有个问题呀,就是我指定了X轴是name那一列,为什么会显示成乱码呢,接下来我们换种方式看看效果
```
plt.plot(df.index,df['name'])
plt.show()
```
运行图:

这个运行图就没有那种类似乱码的了,是因为我们使用的是数据的索引来当作X轴,以后我们也经常会这样用

有兄弟就要说了,你这个用的是索引,我看的不清楚,我必须要用汉字来弄,好家伙,傲娇,我喜欢,哈哈,其实乱码的原因就是因为找不到字体形成的,我们直接给他指定一种字体就可以了
```
plt.rcParams['font.sans-serif']=['simhei']
```
加上这一句代码,然后我们再使用最开始的代码,我们就发现可以正常显示汉字了
运行图:

### 样式修改
```
plt.plot(df.indexx,df['name'],color='red',linestyle='--',marker='D')
plt.show()
```
color表示的是线条颜色,运行图:

linestyle表示的是线条样式,运行图:

marker表示的是将对应坐标描点,运行图:

分享一个快捷的设置方法——将颜色、线条和点标记一起设置。
```
plt.plot(df.index,df['math'],'co--')
plt.show()
```
运行图:

## matplotlib之柱状图
###绘制图像
```
names =
books =
plt.bar(names,books)
plt.show()
plt.barh(names,books)
plt.show()
```
运行图:


### 网状格属性
```
plt.grid(color = 'red',alpha = 0.2)
```
运行图:

是不是有兄弟觉得这个和我们之前学过的pandas可视化有一些莫名的相似呢,不要觉得,它就是相似,之前讲过的属性在这里也是可以使用的,而且散点图,直方图都是只改变一下plt的方法而已,在这里我就不介绍了,有需要兄弟们多看看前面的笔记,就能懂了

## 网格布局
图表布局的意思就是很多张图放在同一张画布上,许多人工智能或者是对图表举例的时候都会用到
### 创建画布
```
fig = plt.figure(figsize=(10,6))
plt.show()
```
这个代码的意思就是创建一个长为10.宽为6的空白画布,是不是看下面的运行图就觉得非常的空白呀,哈哈
运行图:

### 添加图表
```
fig = plt.figure(figsize=(10,6))
a1 = fig.add_subplot(2,3,1)
plt.show()
```
运行图:

add_subplot里面有三个参数,第一个参数是横向几行,第二个参数是纵向几列,第三个参数是放在第几个,我上面代码的意思就是画布中可以放两行三列一共6个图,a1这个图放在第一个
### 绘制图像
```
fig = plt.figure(figsize=(10,6))
a1 = fig.add_subplot(2,3,1)

year =
gdp =
a1.plot(year,gdp)
plt.show()
```
运行图:

### 添加标题
```
fig = plt.figure(figsize=(10,6))
a1 = fig.add_subplot(2,3,1)

year =
gdp =
a1.plot(year,gdp)
plt.title('测试图表布局')
plt.show()
```
运行图:

## 今日鸡汤
我们这一辈子,注定会经历很多不如意,如果无法学会与自己和解,真的会很累!与其盯着那些不好的,不如带着一颗乐观满足的心,寻找生命的确幸,积蓄勇敢的力量。

lyl610abc 发表于 2021-3-19 17:28

最近混吃等死中{:301_991:}
持续性摸鱼,不像楼主这么有毅力{:301_977:}

qianshang666 发表于 2021-3-19 17:29

lyl610abc 发表于 2021-3-19 17:28
最近混吃等死中
持续性摸鱼,不像楼主这么有毅力

{:301_998:}我也混吃等死了两天

Cacarot 发表于 2021-3-19 17:54

马克一记,看看能不能跟上

hxw. 发表于 2021-3-19 17:56

下载试试看。

armeddevil 发表于 2021-3-19 19:00

通过PYTHON由浅入深学习,支持大神的教程

yww595 发表于 2021-3-19 21:09

python学习路上,先保留

速水真澄 发表于 2021-3-20 08:33

膜拜大神,能够坚持下去

samsung3ne 发表于 2021-3-20 08:58

先存着,等学到了再来看。
页: [1]
查看完整版本: 【笔记】python数据分析——浅谈matplotlib可视化