(代码详解)饼图绘制+参数讲解+饼图内外标签字体大小设置+添加图例,并调整图例大小与位置+调整标题与图之间的距离

      大家好,本篇的目的是使用python画出如下的饼图,并且介绍其中参数的作用

目录

完整代码 

一、导入所需的库

二、中文显示

三、调整图例的大小(长、宽)

 四、导入数据

五、绘制饼图+参数介绍 (重点)

六、调整饼图外标签和内标签的字体大小

a的结果如下:

对a的结果进行介绍:

b的结果如下:

对b的结果进行介绍:

c的结果:

 对c的结果进行介绍:

(敲黑板啦!) 调整外标签字体大小:

七、添加图例+调整图例字体大小与位置

八、调整标题与图之间的距离

完整代码 

import matplotlib.pyplot as plt
import pandas as pd
plt.rcParams['font.sans-serif']='SimHei'#设置中文显示
#设置图例大小,宽,高
plt.figure(figsize=(6,9))
# 数据
data = {
    'column1': ['A', 'B', 'C', 'D'],
    'column2': [100, 250, 156, 90]
    }
df = pd.DataFrame(data)

# 绘制饼图
a,b,c=plt.pie(df["column2"], labels=df["column1"], autopct='%1.1f%%', colors=["red","lightskyblue","blue","yellowgreen"],pctdistance=0.6,shadow=True,labeldistance=1.1,
       frame=False,explode = (0.2, 0.1, 0.1, 0.2),textprops={'fontsize': 15},startangle=40)


# sizes = [100, 250, 156, 90]#内标签
# labels = ['A', 'B', 'C', 'D']#外标签
# a,b,c=plt.pie(sizes, labels=labels, autopct='%1.1f%%', colors=["red","lightskyblue","blue","yellowgreen"],pctdistance=0.6,shadow=True,labeldistance=1.1,
#        frame=False,explode = (0.2, 0.1, 0.1, 0.2),textprops={'fontsize': 15},startangle=40)

for i in b:
    i.set_size(30)
for i in c:
    i.set_size(20)
    
# 添加图例并设置字体大小
plt.legend(df["column1"], fontsize=14,loc='upper right',bbox_to_anchor=(1.5, 1))

plt.title('饼图',fontsize=25,pad=35)#绘制标题
# # 设置字体大小
# plt.rcParams['font.size'] = 20

# plt.axis('equal')这个自己体会一下,影响不大

plt.show()

下边将完整代码拆解开来,分别介绍

一、导入所需的库

import pandas as pd
import matplotlib.pyplot as plt

采用matplotlib绘制饼图

使用pandas处理数据

二、中文显示

plt.rcParams['font.sans-serif']='SimHei'#设置中文显示

避免画图时标题等字体不显示,此行代码可以让中文显示出来

作用是设置Python绘图库Matplotlib中的字体为SimHei。这使得绘图中的文本显示为简体中文。

这里的`plt.rcParams`用于配置Matplotlib的参数,`font.sans-serif`表示字体系列,'SimHei'表示具体的字体名称。

三、调整图例的大小(长、宽)

plt.figure(figsize=(6,9))

 四、导入数据

# 数据
data = {
    'column1': ['A', 'B', 'C', 'D'],
    'column2': [100, 250, 156, 90]
    }
df = pd.DataFrame(data)

结果如下:

五、绘制饼图+参数介绍 (重点)

a,b,c=plt.pie(df["column2"], labels=df["column1"], 
            autopct='%1.1f%%', 
            colors=["red","lightskyblue","blue","yellowgreen"],
            pctdistance=0.6,shadow=True,labeldistance=1.1,
            frame=False,explode = (0.2, 0.1, 0.1, 0.2),
            textprops={'fontsize': 15},startangle=40)

plt.title('饼图',fontsize=20)#绘制标题

plt.show()

①data["column2"]:以data的第二列作为绘制饼图的数据,展示数据框(df)中"column2"列的占比情况

②labels=df["column1"]:在绘制饼图时,使用 `df["column1"]` 中的值作为标签。这些标签会显示在饼图的每个部分旁边,帮助用户识别各个部分所代表的数据。

labels是plt.pie()中的一个参数,参数值为df["column1"]

③`autopct`参数用于设置百分比标签的格式,这里设置为`'%1.1f%%'`,表示保留一位小数的百分比。如果你不需要这个功能,可以将其设置为`None`,或者不设置此参数。

④`colors=["red","lightskyblue","blue","yellowgreen"]`:设置饼图的颜色,分别为红色、浅天空蓝、蓝色和黄色绿色。

⑤pctdistance:饼块内标签与圆心的距离。

⑥shadow:饼图下是否有阴影。布尔值。默认值为False。

⑦labeldistance:饼块外标签与圆心的距离。如果设置为None,标签不会显示,但是如果图中有设置图例,图例可以使用标签。(图例怎么设置,下边会进行介绍)

⑧frame:是否绘制子图边框,布尔值。默认为False

⑨explode:控制饼块分离,设置爆炸效果,也就是使饼图的每部分扇形分开,不在圆心聚合。

                 此例中使每个部分的比例为0.2、0.1、0.1和0.2。

⑩textprops控制外标签字体大小,此例中也就是ABCD的字体大小,

startangle:饼块起始角度。默认值为0,即从x轴开始,逆时针旋转为第一块。

上面代码中a、b、c的具体含义,留到第六节进行介绍,请看下边

六、调整饼图外标签和内标签的字体大小

上面我们介绍了通过参数textprops控制外标签字体大小,下面我们介绍另一种方法分别调整外标签和内标签的字体大小。

首先我们先来介绍一下a、b、c分别是什么,分别打印输出a、b、c,查看结果

a的结果如下:

对a的结果进行介绍:

这个结果包含了四个matplotlib.patches.Wedge对象,每个对象的内存地址不同。这些对象是在绘制图形时创建的扇形图。

第一行"at 0x22d9ee6b400"表示这个对象(在这个例子中是matplotlib.patches.Wedge对象)的内存地址。这个地址是一个十六进制数,用于唯一标识这个对象在内存中的位置。

因为我们刚才设置了饼块的起始角度“startangle=40”,比方改一下这个参数,结果就会变,也就是地址就会变。
#

这些对象存储在内存中的地址不同,分别为:

 1.0x22d9ee6b400
 2.0x22d9ee95970
 3.0x22d9ff4d8e0
 4.0x22d9ff4d4c0
b的结果如下:

对b的结果进行介绍:

这是一个表示四个文本框的位置坐标的信息。可以从这些坐标中解析出以下信息:

1. 文本框A的位置:x坐标为0.440330613235106,y坐标为1.2231553258061691。
2. 文本框B的位置:x坐标为-1.196937984635972,y坐标为0.08567065387621148。
3. 文本框C的位置:x坐标为0.5730229693109448,y坐标为-1.0543456153662651。
4. 文本框D的位置:x坐标为1.2675995774046722,y坐标为0.28842904043021794。

稍后用b来调整外标签ABCD的字体大小!

c的结果:

 对c的结果进行介绍:

这是一段描述四个文本框位置的文本,文本框中包含四种文字,是饼图的文本标签,分别是:[16.8%、41.9%、26.2%、15.1%]

可以从这些坐标中解析出以下信息

1. 第一个文本标签表示第一个部分占整个饼图的16.8%

    坐标为 (-0.17996082887875442, 0.7794960551980181) 的点;

2.第二个文本标签表示第二个部分占整个饼图的41.9%

    坐标为 (-0.6820590482982658, -0.1574657252689104) 的点;

3.第三个文本标签表示第三个部分占整个饼图的26.2%。

    坐标为 (0.048829557772520085, -0.6982948333531762) 的点;

4.第四个文本标签表示第四个部分占整个饼图的15.1%。

    坐标为 (0.7980512355054844, 0.055805246242355014) 的点。

在这里,[16.8%、41.9%、26.2%、15.1%]表示饼图的各个部分所占的比例。

稍后用c来调整内标签(比例)字体大小!

(敲黑板啦!) 调整外标签字体大小:
for i in b:
    i.set_size(30)

 将外标签字体大小设置为30

(敲黑板啦!) 调整内标签字体大小:

 将内标签字体大小设置为20

for i in c:
    i.set_size(20)

七、添加图例+调整图例字体大小与位置

plt.legend(df["column1"], fontsize=14,loc='upper right',bbox_to_anchor=(1.5, 1))

①要设置图例的位置,可以使用plt.legend()函数的loc参数。loc参数接受一个字符串,表示图例的位置
loc参数可选如下:

'upper right':右上

'upper left' :左上

'lower left':左下

'lower right':右下

②除此之外,还可以通过bbox_to_anchor参数调整图例的位置:
bbox_to_anchor参数设置为(1.05, 1),表示图例的位于图形的右上角的某个位置。小伙伴可以根据需要调整这个值。

③fontsize控制图例的大小

④df["column1"]:将数据df中的column1列数据作为标签

八、调整标题与图之间的距离

plt.title('饼图',fontsize=25,pad=35)#绘制标题

可以通过pad参数来调整标题与图之间的距离。

  • 20
    点赞
  • 32
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: 可以使用matplotlib库中的matplotlib.pyplot.pie()函数来实现。具体代码如下:import matplotlib.pyplot as plt labels = 'Apple', 'Banana', 'Cherry' sizes = [15, 30, 45] colors = ['red', 'yellow', 'blue'] explode = (0.1, 0, 0) # fraction of the radius with which to offset each wedge plt.pie(sizes, explode=explode, labels=labels, colors=colors, autopct='%1.1f%%', shadow=True, startangle=90, fontsize=20) plt.axis('equal') plt.show() ### 回答2: 在python中,使用Matplotlib库来绘制饼图,可以通过设置参数来调节标签字体的颜色和大小。 首先,需要导入Matplotlib库和相关模块,示例如下: ``` import matplotlib.pyplot as plt ``` 接下来,创建数据并绘制饼图: ``` # 创建数据 sizes = [30, 20, 15, 10, 25] labels = ['A', 'B', 'C', 'D', 'E'] # 绘制饼图 plt.pie(sizes, labels=labels) # 调节标签字体颜色和大小 plt.rcParams['font.size'] = 12 # 设置字体大小 plt.rcParams['text.color'] = 'white' # 设置字体颜色 # 显示饼图 plt.show() ``` 在上述代码中,通过 `plt.rcParams['font.size']` 来设置字体大小参数值为字体的大小(例如12);通过 `plt.rcParams['text.color']` 来设置字体颜色,参数值为颜色的名称(例如'white'代表白色)。 绘制饼图后,使用 `plt.show()` 来显示图形。这样,就可以调节饼图标签字体的颜色和大小了。 注意:为了能够正常显示中文,还需要在代码开头添加以下两行代码: ``` from matplotlib.font_manager import FontProperties font = FontProperties(fname='/Library/Fonts/Songti.ttc') ``` 这样就可以设置中文字体为宋体,配置文件的路径需要根据实际操作系统进行修改。 同时,需要将 label 参数中的中文标签改为英文,否则可能会显示乱码。 ### 回答3: 在使用Python绘制饼图时,可以使用matplotlib库中的pyplot模块来调节标签字体的颜色和大小。以下是具体步骤: 首先,需要导入需要的库: ```python import matplotlib.pyplot as plt ``` 接下来,创建数据和标签列表,作为饼图的输入: ```python data = [20, 30, 50] labels = ['A', 'B', 'C'] ``` 然后,创建一个标签字体的属性字典,包括字体颜色和大小: ```python label_font = {'color': 'red', 'size': 12} ``` 接着,使用matplotlib的pyplot模块来绘制饼图,并调节标签字体的颜色和大小: ```python plt.pie(data, labels=labels, autopct='%.1f%%') plt.gca().set_aspect('equal') # 设置饼图为正圆形 plt.gca().set_title("Pie Chart") # 设置标题 # 调节标签字体的颜色和大小 plt.gca().set_xticklabels(labels, fontdict=label_font) plt.show() ``` 运行以上代码,即可绘制一个饼图,并将标签字体的颜色设置为红色,字体大小设置为12。 需要注意的是,`set_xticklabels`函数用于调节x轴上的标签字体,因为饼图标签位于饼图周围的扇形区域上,所以实际上是调节x轴上的刻度标签。如果需要调节y轴上的标签字体,可以使用`set_yticklabels`函数。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值