matplotlib柱状图上方显示数据_Python基础数据可视化

数据可视化是数据分析中最重要的工作之一。在数据探索阶段,可视化有助于我们了解数据的基本分布与简单规律;在数据分析结果阶段,可视化呈现的结果更加直观、醒目。按照数据之间的关系,我们可以把可视化视图分为四类:比较、联系、构成和分布。数据之间表现的这四种关系主要特点如下:
  • 比较:比较数据间各类别的关系,或者是它们随时间的变化趋势,比如折线图;

  • 联系:查看两个或两个以上变量之间的关系,比如散点图;

  • 构成:每个部分占整体的百分比,或者是随时间的百分比变化,比如饼图;

  • 分布:关注单个变量,或者多个变量的分布情况,比如直方图与散点图。

在Python中,常用的可视化库有:
  • matplotlib 

  • seaborn 

seaborn 跟 matplotlib 最大的区别就是它的默认绘图风格和色彩搭配都更具有现代美感,其实是在 matplotlib 的基础上进行了更高级的 API 封装,能用更少的代码去调用 matplotlib 的方法,从而使得作图更加容易,在大多数情况下使用 seaborn 就能做出很具有吸引力的图,而使用 matplotlib 就能制作具有更多特色的图。应该把 seaborn 视为  matplotlib 的补充,而不是替代。 matplotlib 中最基础的模块是 pyplo t ,下面从最简单的折线图开始讲解,主要操作流程包括:

创建图像对象  

使用figure函数来创建

输入数据参数

导入数据

在窗口里面绘图与标记内容

线条粗细、颜色、形状、横坐标纵坐标等等

>>> import matplotlib.pyplot as plt # 载入matplotlib的子模块pyplot>>> fig = plt.figure(figsize=(10,8))  # 指定图像大小与纵横比
其中 figsize=(10,8) 是用来指定图像的大小与纵横比,下面以折线图为例,来介绍 matplotlib 中常用的命令与步骤
>>> input_value = [1,2,3,4,5]  # 输入值>>> squares = [1,4,9,16,25]    # 输出值>>> plt.plot(input_value,squares,linewidth=5)  # 设置线条的粗细>>> plt.title("Square Numbers",fontsize=24)    # 给图表指定标题>>> plt.xlabel("Value ",fontsize=14)           # 为x轴设置标题>>> plt.ylabel("Square of value",fontsize=14)  # 为y轴设置标题>>> plt.tick_params(axis='both',labelsize=12)  # 设置刻度标记大小>>> plt.show()      # 打开 matplotlib 查看器
最终得到的图像如下所示。注意, pyplo t模块的 plo t函数可以接收其他参数,如线条粗细、颜色、线条形状等。 plo t 函数里面常用的关键字参数如下:

793107b4bfeda29dc0b66eab0d24f793.png

plt.plot(x,y,color='green',marker='o',linestyle='dashed',linewidth=1,markersize=6)# (x,y):横坐标与纵坐标的w位置# color:颜色参数# marker:数据点形状参数# linestyle:线型参数,包括:虚线、实现或点线# linewidth:  线条粗细参数# markersize: 数据点大小参数
如果需要在一个窗口同时画几个不同的子图,可以利用 Matplotlib 的如下命令来实现:
>>> import numpy as np>>> x = np.random.randint(1,10,8) # 从均匀分布随机抽取8个数据>>> label = list('abcdefgh') # 对上述8个数据标记字母>>> plt.subplot(211) # 指定2行1列第1个子图0x09705290>>>> plt.bar(label,x) # 在指定的子图上绘制垂直柱状图8 artists>>>> plt.subplot(212) # 指定2行1列第2个子图0x0B8140F0>>>> plt.barh(label,x) # 在指定的子图上绘制水平柱状图8 artists>>>> plt.show()
注意,垂直柱状图用 plt.bar() ,水平柱状图用 plt.barh() ,图像如下所示:

4910a9efcfa4f6621f2d69de21a46a44.png

利用  pyplot 绘制直方图的命令格式如下:
plt.hist(data,bins=40,normed=0,facecolor="blue",edgecolor="black",alpha=0.7)# data       必选参数,绘图数据# bins       直方图的长条形数目,可选项,默认为0# normed     直方图向量是否进行归一化,默认为0代表不归一化,显示频数# normed=1                                1表示归一化,显示频率# facecolor  长条形的颜色# edgecolor  长条形边框的颜色# alpha      透明度
下面以具体的实例来说明如何绘制直方图:
>>> import matplotlib>>> import numpy as np>>> # 设置matplotlib 正常显示中文和负号>>> matplotlib.rcParams['font.sans-serif']=['SimHei'] # 用黑体显示中文>>> matplotlib.rcParams['axes.unicode_minus']=False   # 正常显示负号>>> data = np.random.randn(10000)  # 随机生成10000个服从正态分布的数据>>> len(data)10000>>> plt.hist(data,bins=40,normed=0,facecolor="blue",edgecolor="black",alpha=0.7)>>> plt.xlabel("区间")  # 显示横轴标签>>> plt.ylabel("频数/频率") # 显示纵轴标签>>> plt.title("频数/频率分布直方图") # 显示图标题>>> plt.show()  # 显示图像

538419938e6d31a16cee7d2f229514f1.png

箱形图  boxplot以一种相对稳定的方式描述数据的离散分布情况,箱形图最大的有点就是不受异常值的影响。从箱形图中可以清晰的看出异常值是否存在,中位数与平均值的差异。在Python中画箱形图,以 matplotlib 结合 seaborn 的方式使得编写代码简洁、绘图更有美感。
>>> import matplotlib.pyplot as plt>>> import seaborn as sns>>> iris = sns.load_dataset("iris")>>> sns.boxplot(x=iris['species'],y=iris['sepal_width'])>>> plt.show()  # 显示图像
图像如下:

6f181240a2566fc5a7c82a00732d364a.png

热点图 heatmap 作为一种密度图,热力图一般使用具备显著颜色差异的方式来呈现数据效果,热力图中亮色一般代表时间发生频率较高或事物分布密度较大,暗色则反之。
import matplotlib.pyplot as pltimport seaborn as sns# Load the example flights dataset and convert to long-formflights_long = sns.load_dataset("flights")flights = flights_long.pivot("month", "year", "passengers")# Draw a heatmap with the numeric values in each cellf, ax = plt.subplots(figsize=(9, 6))sns.heatmap(flights, annot=True, fmt="d", linewidths=.5, ax=ax)

b4769299f4a33659b860802d930a8c76.png

Pairplot 主要展现的是变量两两之间的关系(线性或非线性,有无明显的相关关系)
import matplotlib.pyplot as pltimport seaborn as snsiris = sns.load_dataset("iris")sns.pairplot(iris)

89a3b9885ea739d63d42f2e0726c77bb.png

对角线上是各个属性的直方图(分布图),而非对角线上是两个不同属性之间的相关图,从图中我们发现,花瓣的长度和宽度之间以及萼片的长短和花瓣的长、宽之间具有比较明显的相关关系。 f4c261dda2c1e9a877e13243de8e78fa.gif
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Python提供了多种数据可视化库,其中一种常用的是MatplotlibMatplotlib是一个功能强大的绘图库,可以用来创建各种类型的图表,包括柱状图。 要使用Matplotlib创建柱状图,你需要先安装Matplotlib库。可以使用以下命令在Python中安装Matplotlib: ``` pip install matplotlib ``` 安装完成后,你可以使用以下代码创建一个简单的柱状图: ```python import matplotlib.pyplot as plt # 数据 x = ['A', 'B', 'C', 'D'] y = [10, 15, 7, 12] # 创建柱状图 plt.bar(x, y) # 添加标题和标签 plt.title('柱状图示例') plt.xlabel('类别') plt.ylabel('数量') # 显示图表 plt.show() ``` 这段代码首先导入了`matplotlib.pyplot`模块,并创建了一个简单的柱状图。`x`和`y`分别表示柱状图的横轴和纵轴数据。然后使用`plt.bar()`函数创建柱状图,再使用`plt.title()`、`plt.xlabel()`和`plt.ylabel()`函数添加标题和标签。最后使用`plt.show()`函数显示图表。 如果你想从Excel文件中读取数据并创建柱状图,可以使用`pandas`库来读取Excel文件,并将数据传递给Matplotlib进行绘图。以下是一个示例代码: ```python import pandas as pd import matplotlib.pyplot as plt # 从Excel文件中读取数据 data = pd.read_excel('data.xlsx') # 提取需要的列数据 x = data['类别'] y = data['数量'] # 创建柱状图 plt.bar(x, y) # 添加标题和标签 plt.title('柱状图示例') plt.xlabel('类别') plt.ylabel('数量') # 显示图表 plt.show() ``` 在这个示例中,我们使用`pandas`库的`read_excel()`函数从Excel文件中读取数据,并将需要的列数据提取出来。然后使用Matplotlib创建柱状图,并添加标题和标签,最后显示图表。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值