直方图设置坐标_Python MatplotlibExcel数据的绘图(二)之直方图、条形图、饼图、散点图、极坐标图…

上一章介绍了Matplotlib绘图一些通用的设置,以折线图为例,本章我们就介绍一下其他的图形,直方图、条形图、饼图、散点图、极坐标图的原理和用法。
一、直方图

直方图(Histogram),又称质量分布图,是一种统计报告图,由一系列高度不等的纵向条纹或线段表示数据分布的情况。一般用横轴表示数据类型,纵向表示分布情况。

直方图是数值分布的精确图形表示,这是一个连续变量的概率分布的估计。为了构建直方图,第一步是将值得范围分段,即将整个值得范围分为一系列间隔,然后计算每个间隔中有多少值。间隔必须相邻,且通常是相等的大小。

【直方图的参数只有一个x!不想条形图需要传入x, y】

hist ( )

  • bins : 可以是一个bins数量的整数值,也可以是表示bin的一个序列。默认是10
  • normed : 如果是True,直方图的图作归一化处理,形成概率密度,默认为FALSE
  • color : 指定直方图的颜色。可以是单一颜色值或颜色的序列。如果指定了多个数据集合,颜色序列将会设置为相同的顺序。如果未指定,将会使用一个默认的线条颜色。
  • orientation : 通过设置为horizontal创建水平直方图。默认值为vertical
# 首先导入我们需要的数据,通常会先进行数据处理import pandas as pdimport matplotlib.pyplot as pltdf = pd.read_excel(r'C:\Users\56331\Desktop\test.xlsx', sheet_name='Sheet1')df

直方图设置坐标_Python MatplotlibExcel数据的绘图(二)之直方图、条形图、饼图、散点图、极坐标图...

对上半年的各款项进行一个直方图的绘制

选取上半年的数据df1 = df['上半年']# bins是我想将数据分为10份,range是横轴的坐标范围,color是颜色plt.hist(df1, bins = 10, range = (1000, 2000), color = 'blue')

直方图设置坐标_Python MatplotlibExcel数据的绘图(二)之直方图、条形图、饼图、散点图、极坐标图...

如结果所示,两个array数组,第一个表示数量,第二个表示范围,即1000-1100之间有8个,1100-1200之间有11个,一次类推。。。

如果想显示数值,hist函数中没有封装响应的参数,需要手动进行添加,使用plt.text函数

df1 = df['上半年']arr = plt.hist(df1, bins = 10, range = (1000, 2000), color = 'blue')# 将每一个数值添加到响应的直方图上方for i in range(10):    plt.text(arr[1][i]+20,arr[0][i]+0.2,str(arr[0][i]))

直方图设置坐标_Python MatplotlibExcel数据的绘图(二)之直方图、条形图、饼图、散点图、极坐标图...
二、条形图

条形图的原理不用多说,大家都知道,介绍一下用法,使用bar函数。

import pandas as pdimport matplotlib.pyplot as pltdf = pd.read_excel(r'C:\Users\56331\Desktop\test.xlsx', sheet_name='Sheet2')df

直方图设置坐标_Python MatplotlibExcel数据的绘图(二)之直方图、条形图、饼图、散点图、极坐标图...
# 绘制条形图的大小,宽度和颜色plt.figure(figsize = (10,6))x = df['月份']y = df['2019年']plt.rcParams['font.sans-serif'] = 'Microsoft YaHei' # 设置微软雅黑字体plt.bar(x,y,width = 0.6,color = 'red')

直方图设置坐标_Python MatplotlibExcel数据的绘图(二)之直方图、条形图、饼图、散点图、极坐标图...

如果想绘制水平的条形图,使用barh函数

plt.figure(figsize = (10,6))x = df['月份']y = df['2019年']plt.rcParams['font.sans-serif'] = 'Microsoft YaHei' # 设置微软雅黑字体plt.barh(x,y,0.7,color = 'red')

直方图设置坐标_Python MatplotlibExcel数据的绘图(二)之直方图、条形图、饼图、散点图、极坐标图...

如果每个条形都想显示不一样的颜色,那么可以对color进行设置

import numpy as np# 随机生成12个数组构成12种不同额颜色plt.bar(x,y,width = 0.7,color = np.random.rand(12,3))

直方图设置坐标_Python MatplotlibExcel数据的绘图(二)之直方图、条形图、饼图、散点图、极坐标图...

如果想加上标签,就想上面的直方图那样

plt.bar(x,y,width = 0.7,color = np.random.rand(12,3))for a,b in zip(x,y):    plt.text(a, b+20, b, ha='center')

直方图设置坐标_Python MatplotlibExcel数据的绘图(二)之直方图、条形图、饼图、散点图、极坐标图...
三、饼图

饼图的原理也不用多说,下面介绍其用法

首先将A、B、C三个公司上半年的数据进行汇聚,算出上半年和下半年的业绩总和

import pandas as pdimport matplotlib.pyplot as pltdf = pd.read_excel(r'C:\Users\56331\Desktop\test.xlsx', sheet_name='Sheet1')df2 = df.groupby(['公司名称'])['上半年','下半年'].sum()df3 = df2.reset_index()df3

直方图设置坐标_Python MatplotlibExcel数据的绘图(二)之直方图、条形图、饼图、散点图、极坐标图...

使用上半年的数据制作饼图,并设置常用的参数

plt.figure(figsize = (6,6))# autopct是百分比的格式,explode是只是哪一块分离,shadow是是否显示阴影,# startangle是其实角度,pctdistance和labeldistance是百分比和标签离圆心的举例plt.pie(df3['上半年'], labels = df3['公司名称'], autopct='%0.2f%%',colors=['red','blue','yellow'],        explode=[0,0,0.1], shadow=True, startangle=90, pctdistance=0.5, labeldistance=1.2)# 由于没有调节字体大小的参数,所以设置全局参数大小plt.rcParams['font.size'] = 15  # 横纵相等,为圆形plt.axis('equal')plt.show()

直方图设置坐标_Python MatplotlibExcel数据的绘图(二)之直方图、条形图、饼图、散点图、极坐标图...
四、散点图

散点图的原理也很简单,查看数据分布情况,使用scatter函数。

import numpy as npimport matplotlib.pyplot as pltplt.scatter(np.random.randn(1000), np.random.randn(1000),color = np.random.rand(1000,3),marker = 'd')

直方图设置坐标_Python MatplotlibExcel数据的绘图(二)之直方图、条形图、饼图、散点图、极坐标图...
五、极坐标图

极坐标图可以通过条形图和散点图变化而来,只需要设置为polar就可以了

1、绘制极坐标柱状图

import numpy as npimport matplotlib.pyplot as pltplt.figure(figsize=(9,6))x = np.linspace(0,2*np.pi,8)y = np.random.randint(0,1000,8)plt.bar(x, y, color = np.random.rand(8,3))

直方图设置坐标_Python MatplotlibExcel数据的绘图(二)之直方图、条形图、饼图、散点图、极坐标图...
import numpy as npimport matplotlib.pyplot as pltplt.figure(figsize=(9,9))plt.axes(polar=True)plt.bar(x, y, color = np.random.rand(8,3))

直方图设置坐标_Python MatplotlibExcel数据的绘图(二)之直方图、条形图、饼图、散点图、极坐标图...

2、绘制极坐标散点图

import numpy as npimport matplotlib.pyplot as pltplt.figure(figsize=(9,9))r = 2*np.random.rand(100)x = 2*np.pi*np.random.rand(100)plt.axes(polar=True)plt.scatter(x, r, color = np.random.rand(100,3), s = 150*r*2, cmap = 'cool', alpha = 0.8)

直方图设置坐标_Python MatplotlibExcel数据的绘图(二)之直方图、条形图、饼图、散点图、极坐标图...

Original: https://blog.csdn.net/weixin_33170268/article/details/112568923
Author: 在你的世界
Title: 直方图设置坐标_Python MatplotlibExcel数据的绘图(二)之直方图、条形图、饼图、散点图、极坐标图…

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/678321/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球