龙空技术网

数据可视化:认识Matplotlib

马拉松程序员 53

前言:

如今大家对“mfc划线函数”大体比较关怀,同学们都想要了解一些“mfc划线函数”的相关文章。那么小编也在网络上收集了一些对于“mfc划线函数””的相关知识,希望咱们能喜欢,咱们一起来了解一下吧!

数据经过NumPy和Pandas的计算,最终得到了我们想要的数据结论,但是这些数据结论并不直观,所以想要把数据分析的结论做到可视化,让任何其他人看起来毫无压力,那么Matplotlib将派上用场。

Matplotlib简介

Matplotlib是一个Python全面的绘图库,用于创建静态、动画和交互式可视化。通过 Matplotlib,我们可以仅需要写几行代码,就可以生成绘图,直方图,功率谱,条形图,错误图,散点图等,方便数据展示。

Matplotlib的官网地址为,这里有权威的官网资料,同样与numpy和pandas一样,文档是英文的表达,对读者有一定的能力要求。

折线图

import matplotlib.pyplot as pltimport numpy as np# 用来正常显示中文标签plt.rcParams['font.sans-serif'] = ['SimHei']#x轴生成一个ndarrayx = np.arange(1, 11)# y轴等于2xy = 2 * x#设置作图标题plt.title("y=2x的坐标图")#设置x轴标签plt.xlabel("x轴")#设置y轴标签plt.ylabel("y轴")#绘制折线图plt.plot(x, y)#将折线图显示plt.show()

代码运行结果会生成y=2x的坐标图,如图所示。如果不设置plt的rcParams的参数值,那么生成的图片中将无法正常显示中文。

绘制折线图方法plt.plot(x,y,format_string,**kwargs)

x:x轴数据,列表或数组,可选

y:y轴数据,列表或数组

format_string:控制曲线的格式字符串,可选,由颜色字符、风格字符和标记字符组成。

**kwargs:表示可选多个

常用的控制曲线格式的字符串如下几种:

color:控制颜色,color=’g’

linestyle:线条风格,简写ls,例如ls='-'。'--'表示长虚线

marker:标记风格,例如marker = 'o',

markerfacecolor:标记颜色,简写用mfc,例如mfc= 'red'

markersize:标记尺寸,简写用ms,例如ms= 10

下面使用上面的自定义参数制作一个个性化的图表:

import matplotlib.pyplot as pltplt.rcParams['font.sans-serif'] = ['SimHei']x = np.arange(1, 11)y = 2 * xplt.title("y=2x的坐标图")plt.xlabel("x轴")plt.ylabel("y轴")#个性化制作曲线plt.plot(x, y, color='r', ls='--', marker='o', mfc='blue', ms=10)plt.show()

代码运行结果如图所示

常用的颜色字符的简写如表所示,基本上可以用颜色英文单词的首字母。如果需要更多颜色,也支持使用16进制的RGB色彩模式。

颜色

简写字符

红色

r

绿色

g

蓝色

b

黄色

y

黑色

k

白色

w

常用风格字符

风格

字符

实线

-

长虚线

--

短虚线

:

点划线

-.

常见的标记字符

标记说明

字符

点标记

.

实心圆

o

十字标记

+

五星

*

x标记

x

菱形标记

D

方形标记

s

五角标记

p

散点图

import matplotlib.pyplot as pltplt.rcParams['font.sans-serif'] = ['SimHei']x = [1, 2, 3, 4, 5]y = [2, 3, 7, 8, 4]plt.title("散点图")plt.xlabel("x轴")plt.ylabel("y轴")plt.scatter(x, y, color='r', marker='*')plt.show()

代码运行结果会生成x轴和y轴指定点的坐标图,如图所示。scatter ()函数中的color表示颜色,marker表示点的形状,与plot的值通用。

直方图

import matplotlib.pyplot as pltplt.rcParams['font.sans-serif'] = ['SimHei']  # 用来正常显示中文标签plt.rcParams['axes.unicode_minus'] = False  # 正常显示负号# 生成正态分布的10000个随机数data = np.random.randn(10000)plt.hist(data, bins=50, fc="b", ec="w")# 设置x轴标签plt.xlabel("区间")# 设置y轴标签plt.ylabel("频数")# 设置图标题plt.title("正态分布直方图")plt.show()

代码运行结果如图所示。randn()函数的作用就是从标准正态分布中返回一个或多个样本值。标准正态分布俗称高斯分布,正态分布是大自然中最常见的分布,标准正态分布就是期望为0,方差为1的正态分布。

在hist()方法中参数含义如下:

data:必选参数,绘图数据

bins:直方图的长条形数目,默认为10,为了更加明显地看出正态分布,可以设置大一些。

fc:全写为facecolor,长条形的颜色

ec:全写为edgecolor,长条形边框的颜色

条形图

在之前的小节中得到了高分电影上映年份的TOP,现在我们就将此数据做成可视化的条形图。

import pandas as pdimport matplotlib.pyplot as pltplt.rcParams['font.sans-serif'] = ['SimHei']df = pd.read_excel('movie.xlsx')# 统计每年上映的电影数的前十年份series = df['上映年份'].value_counts()[:10]# 格式化年份数据 int转成str 获得横(x)坐标数据x = []for i in series.index.tolist():x.append(str(i))#获得纵(y)坐标数据y = series.values.tolist()ax = plt.bar(x, y, width=0.4)# 添加横坐标显示plt.xticks(x, x)# 在每个条形图上方显示数值for a, b in zip(x, y):plt.text(a, b + 0.1, '%.0f' % b, ha='center', va='bottom', fontsize=10)#设置横纵坐标标签plt.xlabel('上映年份')plt.ylabel('上映数量')plt.title('高评分电影上映年代TOP10')plt.show()

代码运行结果如图所示,得到这个可视化的图表后,在简单意义上已经完成了一个简单的数据获取、分析以及可视化的过程。

条形图绘制函数bar(),基本用法如下:

bar(x, height, width=0.8, bottom=None, *, align='center', data=None, **kwargs)

x: 横坐标(序列)

height:纵坐标(系列)

width:条形图的宽度,默认是0.8,可以根据实际大小设置,以更加美观

bottom:用于绘制堆叠条形图,默认值为None

align:x轴刻度标签的对齐方式,包括:'center','edge',默认是'center'

饼图

import pandas as pdimport matplotlib.pyplot as pltplt.rcParams['font.sans-serif'] = ['SimHei']df = pd.read_excel('movie.xlsx')# 统计每年上映的电影数的前十年份series = df['制片国家/地区'].value_counts()[:10]label_list = series.index.tolist()  # 各部分标签size = []  # 各部分大小last = 250for i in series.values:last = last - isize.append(i / 250)# 显示前10个国家名称,补充剩余国家label_list.append("其他国家")size.append(last / 250)#设置画布大小plt.figure(figsize=(8, 8))# 设置各部分颜色color = ["r", "g", "b", "y", "tomato", "skyblue", "sandybrown", "hotpink", "lightcoral", "mediumturquoise","paleturquoise"]# 画图plt.pie(size, colors=color, labels=label_list, labeldistance=1.1,autopct="%1.1f%%", shadow=True, startangle=90)# 设置横轴和纵轴大小相等,这样饼才是圆的plt.axis("equal")plt.title("高评分电影制片国家分布占比图")plt.legend()plt.show()

代码运行结果如图所示。

pie()方法用来绘制饼图, pie的参数有很多,如下所列出:

pie(x, explode=None, labels=None, colors=None, autopct=None,pctdistance=0.6, shadow=False, labeldistance=1.1,startangle=None, radius=None, counterclock=True,wedgeprops=None, textprops=None, center=(0, 0), frame=False,rotatelabels=False, *, data=None)

pie方法常用的参数有以下几个:

x:饼图百分比数据

labels:设置饼图中各个部分的标签

autopct:设置百分比信息的字符串格式化方式,默认值为None,不显示百分比

shadow:设置饼图的阴影,使得看上去有立体感,默认值为False

startangle:设置饼图中第一个部分的起始角度

radius:设置饼图的半径,数值越大,饼图越大

counterclock:设置饼图的方向,默认为True,表示逆时针方向,值为False时为顺时针方向

colors:颜色设置,默认值为None, 会使用默认的调色盘,所以通常情况下,不需要设置该参数。但是调色盘会有10个颜色,上图例子中有11个部分,这样造成了首位颜色一样,不好区分,所以设置自定义11个颜色的调色盘

explode:设置突出显示饼图中的指定部分,参数值需要与x的个数一致

标签: #mfc划线函数