首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >绘图与可视化(1)

绘图与可视化(1)

作者头像
python数据可视化之路
发布于 2023-02-23 21:13:48
发布于 2023-02-23 21:13:48
1.1K0
举报

提供信息的可视化是数据分析的重要任务之一,从本章开始会比较详细介绍绘图与可视化有关知识,主要用到的库有matplotlib、numpy、pandas和seaborn。

matplotlib库是Python中绘制二维、三维图表的数据可视化工具,能通过使用简单语句实现复杂绘图效果。

本节将以一些简单的图表图形作为切入点,来简单了解一下matplotlib基础用法。

代码语言:javascript
复制
import matplotlib.pyplot as plt
import numpy as np
from pylab import mpl
mpl.rcParams['font.sans-serif'] = ['SimHei'] #能够使中文正常显示,例如横纵坐标轴文字
plt.rcParams['axes.unicode_minus'] =True #用来正常显示正负号
mpl.rcParams['font.size'] = 16 #设置字号
x = np.linspace(0, 10, 100) #从0-10均匀分为100份
y = np.sin(x)
plt.xlabel('横坐标') #命名横坐标
plt.ylabel('纵坐标') #命名纵坐标
plt.plot(x, y) #绘制折线图

一般来说,绘制不同种类的图形语法是:plt.图形种类,图形种类会后面介绍。

另外的,如果想要为图形限定x,y轴范围,可以使用plt.xlim(a, b)和plt.ylim(a, b)函数;

代码语言:javascript
复制
plt.xlim(-1, 10) #限定x轴范围
plt.ylim(-2, 2) #限定y轴范围
plt.plot(x, y) #绘制折线图

可以看到x轴和y轴的范围已被改变。

也可以使用plt.axvspan绘制垂直于x轴的参考区域,语法如下:

plt.axvspan(xmin, xmax, facecolor, alpha),xmin为最小x参考值;xmax为最大x参考值;facecolor为参考区域填充颜色;alpha为填充区域的透明度。plt.axhspan是绘制垂直y轴的参考区域,用法同axvspan。

代码语言:javascript
复制
plt.axvspan(xmin = 3, xmax = 5, facecolor = 'green', alpha = 0.3) #绘制垂直x轴参考线
plt.axhspan(ymin = -0.3, ymax = 0.3, facecolor = 'green', alpha = 0.3) #绘制垂直y轴参考线
plt.plot(x, y) #绘制折线图

使用axhline可以绘制平行于x轴的水平参考线,语法如下:

plt.axhline(y, c, ls, lw)

y:水平参考线出发点

c:线条颜色

ls:线条样式

lw:线条宽度

同样可以使用plt.axvline绘制平行y轴的水平参考线,语法同上。

代码语言:javascript
复制
plt.axhline(y = 0.8, c = 'red', ls = '--', lw = 2) #绘制平行x轴参考线
plt.axvline(x = 7, c = 'red', ls = '--', lw = 2) #绘制平行y轴参考线
plt.plot(x, y)

使用annotate函数添加图形细节的指向型注释文本,语法如下:

plt.annotate(string, xy, xytext, weight, color, arrowprops=dict(arrowstyle, connectionstyle, color))

string:图形内容注释文本

xy:被注释图形内容的位置坐标

xytext:注释文本的位置坐标

weight:注释文本的字体粗细风格

arrowprops:指示被注释内容的箭头属性字典

代码语言:javascript
复制
plt.annotate('最高点', xy = (np.pi/2, 1), xytext = (3, 0.6), weight = 'bold', color = 'black', 
            arrowprops = dict(arrowstyle = '->', connectionstyle = 'arc3', color = 'black'))
plt.plot(x, y)

使用text函数添加图形内容的无指向型注释,语法如下:

plt.text(x, y, string, weight, color)

x:注释文本的x坐标

y:注释文本的y坐标

string:注释文本

weight:注释文本的粗细风格

color:注释文本颜色

同样可以使用title添加标题,用法比较简单,plt.title(标题)。

同时,所有涉及文字的,都可以用fontsize参数设置大小,fontfamily设置字体(楷体,宋体等),根据以前经验,有的字体用拼音即可调用,不过一般是首字母大写,具体可以自行探索。

代码语言:javascript
复制
plt.text(7, -1, '警戒线', weight = 'bold', color = 'black', fontsize = 14) #在x=7,y=-1处标记‘警戒线’文字
plt.text(9, 0.65, '警戒线', weight = 'bold', color = 'black', fontsize = 14)
plt.title('正弦函数', fontsize = 20, fontfamily = 'KaiTi') #字号20,字体为楷体
plt.plot(x, y)

使用legend设置图例,语法如下:

plt.legend(loc)

loc:图例在图中的位置,值有best,upper right,upper left,lower left,lower right,right,center left,center,right,lower center,upper center,center

其他参数以后会专门一节讲述。

代码语言:javascript
复制
plt.plot(x, y, label = 'y=sin(x)')
plt.legend(loc = 'best', fontsize = 14) #legend一定要放到plt.plot后面
plt.show() #可以使用plt.show()展示图形

同样的,也可以在plt.plot中使用ls和lw指定线条样式和宽度。更详细的介绍可以查看官网或者网上查询,一般来说官网可以解决大多数问题。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-02-09,如有侵权请联系 cloudcommunity@tencent.com 删除
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档