Python数据分析之 Matplotlib 折线图绘制
一、Matplotlib 绘图
在数据分析中,数据可视化也非常重要,通过直观的展示过程、结果数据,可以帮助我们清晰的理解数据,进而更好的进行分析。接下来就说一下Python数据分析中的数据可视化工具 Matplotlib 库。
Matplotlib 是一个非常强大的Python 2D绘图库,使用它,我们可以通过图表的形式更直观的展现数据,实现数据可视化,使用起来也非常方便,而且支持绘制折线图、柱状图、饼图、直方图、散点图等。
可以使用以下命令进行安装:
pip install matplotlib
# 或者
conda install matplotlib
简单示例
绘制y=2x+1
方程图:
import matplotlib.pyplot as plt
# 创建figure对象(绘画对象)
plt.figure(figsize=(4, 6))
# 绘制图像
x = [1, 2, 3, 4]
y = [2*i+1 for i in x]
plt.plot(x, y)
# 显示图像
plt.show()
结果如下:
其中:
- pyplot 是 Matplotlib 的子库,该子库提供了绘图的接口及函数,可以快速地进行图表的绘制。
plt.figure(figsize=(4, 6))
表示创建一个绘图对象,如果没创建直接调用plot
函数会自动创建一个绘图对象,语法格式如下:
plt.figure(num=None, figsize=None, dpi=None, ······)
常用的参数说明如下:
- num:表示图形编号,可以是int或string类型,默认为None,不传递则创建新图形,并且图形编号将递增;传递了会返回该编号对应图形的引用。
- figsize:表示画布的宽度和高度,接收一个整数元组
- dpi:表示绘图对象的分辨率······
plt.plot()
函数表示在当前绘图对象中进行图表的绘制,x和y分别表示x、y轴的数据。plt.show()
表示显示图像,显示后释放figure对象资源。
二、折线图绘制
折线图是一种将数据点按照顺序连起来的图形,可以体现变量y随变量x的变化情况。Matplotlib 提供了plot()
函数绘制折线图,其语法格式如下:
plt.plot(*args, **kwargs)
常用参数及说明如下:
- x、y:分别表示x轴和y轴对应的数据,接收列表类型参数
- color:表示折线的颜色
- marker:表示折线上点的类型,有“.”、“o”、“v”等等类型
- linestyle:表示折线的类型,默认为“-”,表示实线,设置为“--”表示长虚线,设置为“-.”表示点线,设置为“:”表示点虚线
- linewidth:表示折线的粗细
- alpha:表示点的透明度,接收0~1之间的小数
例如,绘制某地区周一到周日平均温度变化折线图:
import matplotlib.pyplot as plt
plt.figure(figsize=(10, 8))
# 周一到周日平均温度数据
plt.plot([1,2,3,4,5,6,7], [12,11,11,13,12,10,10])
plt.show()
结果输出如下:
但是可以看出,图表并不是很好看,我们可以给图表添加一些标签和图例,让图表更加清晰好看,
具体方法如下:
- plt.title():指定当前图表的,包括名称、位置、颜色、字体大小等
- plt.xlabel():指定当前图表x轴的名称、位置、颜色、字体大小等
- plt.ylabel():指定当前图表y轴的名称、位置、颜色、字体大小等
- plt.xlim():指定当前图表x轴的范围
- plt.ylim():指定当前图表y轴的范围
- plt.xticks():指定当前图表x轴刻度
- plt.yticks():指定当前图表y轴刻度
- ····
import matplotlib.pyplot as plt
# 设置支持中文
plt.rcParams['font.family'] = ['SimHei']
plt.figure(figsize=(10, 8))
plt.plot([1,2,3,4,5,6,7], [12,11,11,13,12,10,10], linestyle="-", marker=".")
plt.xlabel("时间")
plt.ylabel("温度")
plt.yticks([i for i in range(20)][::5])
plt.show()
结果输出如下:
到此这篇关于Python数据分析之 Matplotlib 折线图绘制的文章就介绍到这了,更多相关Python 绘制折线图内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341