Python 实现图表绘制功能

Matplotlib是一个用于创建二维图表和绘图的Python库。它可以生成高质量的折线图、散点图、柱状图、饼图、等高线图、3D图等各种类型的图表,适用于数据可视化、科学研究、数据分析和报告生成等领域。

以下是Matplotlib的一些主要特点和功能:

  1. 灵活性:Matplotlib提供了丰富的绘图选项和定制功能,使用户能够根据需要创建具有各种样式和布局的图表。可以自定义图表的标题、标签、线条样式、颜色、图例等。

  2. 多种图表类型:Matplotlib支持多种常见的图表类型,如折线图、散点图、柱状图、饼图、等高线图、热图、3D图等。可以根据数据的特点选择合适的图表类型进行展示。

  3. 高质量输出:Matplotlib生成的图表具有高质量的输出,可以保存为各种常见的图片格式,如PNG、JPEG、SVG等。图表的分辨率和尺寸可以进行调整,以适应不同的需求。

  4. 支持交互式绘图:Matplotlib可以与Jupyter Notebook等交互式环境结合使用,实时显示和更新图表。这使得数据分析和实验性工作更加方便。

  5. 与NumPy集成:Matplotlib与NumPy紧密集成,可以直接使用NumPy数组作为图表的数据源,简化了数据处理和图表绘制的流程。

  6. 丰富的文档和社区支持:Matplotlib拥有详细的官方文档和示例集,用户可以轻松查找和理解各种绘图函数和用法。同时,Matplotlib拥有庞大的用户社区,可以获取支持、交流经验和分享代码。

总的来说,Matplotlib是Python中最常用和广泛应用的绘图库之一。它提供了丰富的绘图功能和灵活的定制选项,使用户能够轻松地创建各种类型的图表,实现数据可视化和图形化展示。

在使用Python绘制图表前,我们需要先安装两个库文件numpy和matplotlib

pip install numpy
pip install matplotlib

生成直方图

直方图是一种用于可视化数据分布的图形表示方法。它将数据分成若干个等宽的区间(也称为“箱子”或“柱”),并计算落入每个区间的数据点数量。然后,通过在坐标轴上绘制这些区间的柱状条形图来表示数据的分布情况。

直方图通常用于展示数值数据的频率分布,可以帮助我们了解数据集中值的范围、分布形态以及数据的集中程度。在直方图中,横轴表示数据的取值范围或区间,纵轴表示该区间内数据点的数量或频率。每个柱状条形的高度表示该区间内数据点的数量或频率。

通过观察直方图,我们可以得到关于数据集的一些重要信息,如数据的中心趋势、峰值、离散程度等。直方图可以帮助我们发现数据的异常值、判断数据的分布类型(如正态分布、偏态分布等)以及进行数据预处理和特征工程等任务。

在统计学和数据分析中,直方图是一种常用的探索性数据分析工具,它提供了对数据集的直观认识,并为后续的分析和决策提供了基础。

import numpy as np
from pylab import *

num=100
sigma=20

x=num+sigma*np.random.randn(20000)                    #样本数量

plt.hist(x,bins=100,color="green",normed=True)        #bins显示有几个直方,normed是否对数据进行标准化

plt.show()                                            #显示图像
plt.savefig()                                         #保存图片

运行结果:

生成条形图

条形图(Bar chart)是一种常见的数据可视化图表,用于比较不同类别或组之间的数据大小或数量。它使用矩形条形的长度或高度来表示数据的数值大小,从而提供了一种直观的比较方式。

条形图通常由两个轴组成:水平轴(x轴)和垂直轴(y轴)。水平轴用于表示不同的类别或组,而垂直轴用于表示数值大小。每个类别或组对应一个矩形条形,其高度或长度与该类别或组的数值大小成比例。

条形图可用于显示不同类别的数据之间的比较,例如不同产品的销售额、不同城市的人口数量、不同时间段的收入情况等。它可以直观地展示数据的差异、趋势和关系,帮助我们理解数据的分布和变化。

条形图的优点包括简单易懂、易于比较不同类别的数据、能够显示数据的大小和差异。它可以用于探索性数据分析、报告数据结果、支持决策等应用场景。

在绘制条形图时,可以使用不同的样式和颜色来区分不同类别或组,增加可视化效果。还可以添加数据标签、图例和标题等元素,以增强图表的可读性和信息传达能力。

import numpy as np
from pylab import *


value=[22,13,34]
index=["root","admin","lyshark"]
#index=np.arange(5)

plt.bar(left=index,height=value,color="green",width=0.5)

plt.show()

运行结果:

生成折线图

折线图(Line chart)是一种常见的数据可视化图表,用于显示随着时间、顺序或其他连续变量的变化而变化的数据趋势。它通过连接数据点形成线段来展示数据的变化情况。

折线图通常由两个轴组成:水平轴(x轴)和垂直轴(y轴)。水平轴表示时间、顺序或其他连续变量,而垂直轴表示与该变量相关的数值。每个数据点在图表中用一个标记(通常是圆圈、方块或其他形状)表示,并通过线段将这些数据点连接起来。

折线图常用于显示数据随时间的变化趋势,例如股票价格的变化、气温的变化、销售额的变化等。它可以帮助我们观察数据的趋势、周期性、季节性和其他模式,以及识别异常值或突变点。

折线图的优点包括清晰明了、能够显示数据的趋势和变化、易于比较不同类别或组之间的数据。它可以用于分析数据的变化、预测趋势、发现关联性等,对于探索性数据分析、报告数据结果和支持决策都非常有用。

在绘制折线图时,可以根据需要添加多条线来比较不同组别或变量的趋势。还可以通过改变线条的颜色、粗细、样式和标记的形状来区分不同组别或变量。此外,还可以添加图例、数据标签和标题等元素,以增强图表的可读性和信息传达能力。

import numpy as np
from pylab import *

x=np.linspace(-10,10,100)
y=x**3
plt.plot(x,y,linestyle="--",color="green",marker="<")

plt.show()

运行结果:

生成散点图

散点图(Scatter plot)是一种常见的数据可视化图表,用于展示两个变量之间的关系或模式。它通过在坐标系中绘制数据点来表示两个变量的取值,并用点的位置来表示变量之间的关系。

在散点图中,每个数据点由两个数值表示,分别对应于两个变量在坐标系上的位置。水平轴通常表示自变量(独立变量),垂直轴表示因变量(依赖变量)。每个数据点在图表中以一个点或其他标记(如圆圈、方块)的形式呈现。

import numpy as np
from pylab import *

x=np.random.randn(1000)
y=x+np.random.randn(1000)*0.5

plt.scatter(x,y,s=5,marker="<")            #s表示面积  Marker表示图形

plt.show()

运行结果:

生成饼状图

饼状图(Pie chart)是一种常见的数据可视化图表,用于展示分类数据的占比关系。它通过将数据划分成不同的分类,并用扇形的区域来表示每个分类在整体中所占的比例。

在饼状图中,每个分类用一个扇形区域来表示,扇形的角度大小与该分类的占比成正比。通常,所有分类的扇形区域加起来形成一个圆,整个圆代表全部数据的总和。

import numpy as np
from pylab import *
 
labels="cangjingkong","jizemingbu","boduoyejieyi","xiaozemaliya"
fracs=[45,10,30,15]

plt.axes(aspect=1)

explode=[0,0.05,0,0]
plt.pie(x=fracs,labels=labels,autopct="%0f%%",explode=explode)
plt.show()

运行结果:

生成箱形图

箱形图(Box plot),也称为盒须图或盒式图,是一种常见的数据可视化图表,用于展示数据的分布特征和离群值。

箱形图主要由以下几个部分组成:

  1. 箱体(Box):箱体代表了数据的中间50%范围,即数据的四分位数(Q1、Q2、Q3)。箱体的下边缘表示第一四分位数(Q1),箱体的上边缘表示第三四分位数(Q3),而箱体内部的线表示中位数(Q2)。
  2. 上须(Whisker):上须表示数据中大于上边缘的1.5倍四分位距(Q3 - Q1)的数据范围,通常用一条直线或符号表示。上须的末端通常是最后一个不超过上须距离的数据点。
  3. 下须(Whisker):下须表示数据中小于下边缘的1.5倍四分位距的数据范围,通常用一条直线或符号表示。下须的末端通常是第一个不超过下须距离的数据点。
  4. 离群值(Outlier):离群值是远离箱体和须的数据点,可能代表了异常值或极端值。

主要用于显示数据的分散情况。图形分为上边缘、上四分位数、中位数、下四分位数、下边缘。外面的点时异常值

import numpy as np
from pylab import *

np.random.seed(100)
data=np.random.normal(size=(1000,4),loc=0,scale=1)

labels=["A","B","C","D"]

plt.boxplot(data,labels=labels)

plt.show()

运行结果:

生成组合图例

import numpy as np
from pylab import *

x=np.arange(1,11,1)
          
plt.plot(x,x*2)
          
plt.plot(x,x*3)
          
plt.plot(x,x*4)
      
plt.legend(["BoDuoYeJieYi","CangJingKong","JiaTengYing"])
          
plt.show()

运行结果:

生成中文图片

import numpy as np
from pylab import *

mpl.rcParams['font.sans-serif'] = ['KaiTi']

label = "windows xp","windows 7","Windows 8","Linux 4","Centos 6","Huawei交换机"
fracs = [1,2,3,4,5,1]


plt.axes(aspect=1)


plt.pie(x=fracs,labels=label,autopct="%0d%%")
plt.show()

  • 0
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

微软技术分享

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值