以下是搜索内容: 关闭

  • 首页
  • 日志
  • 友情链接
  • 关于我

KoiNL.

愿世间美好 温柔以待

“锦鲤握运,未离我韵”

“愿好运常在”

18 分类
0 标签
16 归档
  • 小站首页
  • 个人日志
  • 友情链接
  • 关于自己
  • 我的工具
站点信息

文章数目: 84 篇

最近动态: 2天前

上线时间: 531天

当前版本: v3.0.0

第三章 数据可视化(Matplotlib)

分类: Data-Processing-and-Analysing
标签:

创建日期:2022-09-07 12:05:54

数据可视化主要旨在借助于图形化手段,清晰有效地传达与沟通信息。因此本章主要在于掌握数据图像的绘画。

在本章中,我们需要先将工具 Matplotlib 下载下来;其次,我们需要掌握进行简单的图形绘制;再次,一个好的图表不能只有图形,故需要掌握如何完善图表。最后,通过一个例子(掷骰子)来总结下所学内容。

一、安装 Matplotlib

巧妇安能作无面汤饼乎?Matplotlib 为 Python 中第三方库,需要进行安装。
安装方法:在 PyCharm 的最下方“终端中”输入:
pip install matplotlib -i http://mirrors.aliyun.com/pypi/simple/ --trusted-host mirrors.aliyun.com

二、简单认识下折线图、柱状图、直方图、散点图等

1. 折线图(plt.plot())

1
2
3
4
5
6
7
8
9
10
11
# 导入所需库
import numpy as np
import matplotlib.pyplot as plt
# 准备数据
x=np.linspace(1,10,5) # 1 到 10 均匀取 5 个点
y=np.sin(x) # 绘制 sin(x) 函数
# 绘制图形
plt.plot(x,y) # 绘制折线图
# plt.plot(x,y,'go--',linewidth=5,markersize=10,label='figure') # 绘制折线图,
# 展示结果
plt.show()

go– 参数等同于:color,marker,linestyle

2. 柱状图(bar())

1
2
3
4
5
6
7
8
9
10
# 导入所需库
import matplotlib.pyplot as plt
# 准备数据
x=[1,2,3,4,5,6]
y=[7,5,3,9,4,6]
# 绘制图形
plt.bar(x,y)
# plt.bar(x,y,width=0.4,tick_label=['库','博','c','d','e','f'],color=['c','b','r'],hatch='/')
# 展示结果
plt.show()

width 柱状宽度,mor 0.8
hatch 填充,hatch ,/ * . o
bottom y轴起点数值
align {‘center‘,’edge’}
color 颜色
edgecolor 柱体边缘颜色
linewidth 柱状宽度

3. 直方图(hist())

1
2
3
4
5
6
7
8
9
10
11
# 导入所需库
import matplotlib.pyplot as plt
import numpy as np
# 准备数据
x=[np.random.randint(0,10,40),np.random.randint(0,100,40)] # [0,100),任意取 40 个数
y=list(range(0,101,10)) # [0,101),每隔 10 取一个数
# 绘制图形
plt.hist(x,bins=y) # 0-10 内有多少个数
# plt.hist(x,bins=y,color=['c','b'],histtype='bar',rwidth=1,alpha=0.6,edgecolor='black',label=['one','two'])
# 展示结果
plt.show()

粗体为默认值!
histtype 参数,可选{‘bar‘,’barstacked’,’step’,’stepfilled’}
align 参数,可选{‘left’,’mid‘,’right’}
orientation 参数,可选{‘horizontal’,’vertical‘}
rwidth 参数,设置长条形的宽度占 bin 宽度的比例
color 参数,指定颜色
label 参数,区分多个数据集
facecolor 参数,直方图的颜色
edgecolor 参数,直方图边框的颜色
alpha 参数,设置透明度

4. 散点图

5. 等值线图

三、对图形的优化

总的来说,在 Matplotlib 中有两大元素:

  • 基础类元素:线、点、文字、图例、标题、图片等。
  • 容器类元素:图形、坐标图形、坐标轴和刻度。

我们可以绘制出来一个

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
# 《导入所需库》
import matplotlib.pyplot as plt
import matplotlib as mpl
import numpy as np

# 《字体设置》
mpl.rcParams['font.sans-serif']='SimHei'
mpl.rcParams['axes.unicode_minus']=False
mpl.rcParams['font.size']=12

# 《准备数据》
x=np.linspace(0.2,3.0,100)
y1=np.sin(x)
y2=np.random.randn(100)

# 《绘制图形》
plt.scatter(x,y2,c='g',edgecolors='none',label='散点图')
plt.plot(x,y1,'--',c='r',lw=3,label='曲线图')

# 《美化图形》
## 标题与图例
plt.title('图标元素示例',color='b',fontsize=20) # 设置标题
plt.legend(loc='upper right',fontsize='12') # 设置图例
## 坐标轴范围、内容、格式
plt.xlim(0.0,4.0) # 设置刻度范围
plt.ylim(-4.0,4.0)
plt.ylabel('val_y',rotation=360) # 设置刻度标识
plt.xlabel('val_x')
plt.tick_params(axis='both',labelsize=20) # 设置刻度线样式(修改哪一个,刻度字体大小)
## 网格线与参考线
plt.grid(True,ls=':',color='grey') # 设置网格
plt.axhline(y=0.0,c='r',ls='--',lw=2) # 设置x轴参考线
## 注释
plt.annotate('y=sin(x)',xy=(np.pi/2,1.0),xytext=(1.8,2),color='r',fontsize=15,arrowprops=dict(arrowstyle='->',connectionstyle='arc3',color='r'))
plt.text(3.0,-1.3,'图表参考线',color='b',fontsize=15,weight='bold') # 设置注释

# 《保存图形》
plt.savefig('figure-DPaA03-a-koinl.png', dpi=200)
# 《展示图形》
plt.show()

在我们绘制图形时,牢记下述口诀,妈妈再也不怕我忘记如何画图了!

导入所需库——字体设置——准备数据——绘制图形——美化图形——保存图形——展示图形

字体设置在图表中出现中文的时候使用
美化图形在自己想要自定义图表的时候使用
保存图形在自己想要保存图表的时候使用
故最简单的绘图计划为:导入所需库——准备数据——绘制图形——展示图形

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
# 《准备数据》
class Die():
"""分别为骰子点数初始化和模拟投骰子函数"""
def __init__(self, num=6): self.num = num
def roll_die(self): return randint(1, self.num)
def Roll_die():
die1, die2 = Die(), Die()
results, count_nums = [], []
x = list(range(1, 13))
# 投 2000 次,将每次结果存入 results 列表;以及# 统计面数总和被投到的次数
for roll_num in range(2000): results.append(die1.roll_die() + die2.roll_die())
for value in range(1, die1.num + die2.num + 1): count_nums.append(results.count(value))
return x, count_nums


# 《导入所需库》
import matplotlib.pyplot as plt
import matplotlib as mpl
from random import randint

# 《字体设置》
mpl.rcParams['font.sans-serif']='SimHei'
mpl.rcParams['axes.unicode_minus']=False

# 《准备数据》
x,y=Roll_die()

# 《绘制图形》
plt.bar(x,y, width=0.7, edgecolor='r', alpha=0.6, label='频数')

# 《美化图形》
## 标题与图例
plt.title('图标元素示例',color='b',fontsize=20) # 设置标题
plt.legend(loc='upper right',fontsize=12) # 设置图例
## 坐标轴范围、内容、格式
plt.xlabel('骰子点数和') #
plt.ylabel("各点数和的频数")
plt.xticks(range(1, 13))
plt.tick_params(axis='both',labelsize=20) # 设置刻度线样式(修改哪一个,刻度字体大小)
## 网格线与参考线
plt.grid(axis='y', ls=':', c='grey', alpha=0.5)
# plt.axhline(y=0.0,c='r',ls='--',lw=2) # 设置x轴参考线
## 注释


# 《保存图形》
plt.savefig('figure-DPaA03-ROLL-DICE-koinl.png', dpi=200)
# 《展示图形》
plt.show()
浏览量

评论区

欢迎你留下宝贵的意见,昵称输入QQ号会显示QQ头像哦~

目录

  1. 1. 一、安装 Matplotlib
  2. 2. 二、简单认识下折线图、柱状图、直方图、散点图等
    1. 2.1. 1. 折线图(plt.plot())
    2. 2.2. 2. 柱状图(bar())
    3. 2.3. 3. 直方图(hist())
    4. 2.4. 4. 散点图
    5. 2.5. 5. 等值线图
  3. 3. 三、对图形的优化

上一篇: 第四章 数据预处理

下一篇 第二章 数据分析(Pandas)

公告栏

《 

 》

Hello~近期剽窃本站内容频发,本站唯一指定网站:https://koinl.github.io。请认准。点击点击此处选择进入。
回到顶部
查看评论

Power By Hexo.

Theme:koinl.

信息来源于锦鲤未离