如何在 Matplotlib 饼图中为楔形设置边框?
饼图可用于数据的相对比较。 Python提供了几个数据可视化库来使用。 Matplotlib 库提供了不同类型的图形以及用于操作图形的内置方法和属性。可以使用 matplotlib.pyplot 的 pie() 方法的 wedgeprops 属性为饼图中的楔形指定边框。下面给出了两个这样的示例,用于为饼图的楔形设置边框。
Syntax: wedgeprops : [dict | None]
Parameters:
dict: It is the property and its value. Example: {‘linewidth’:2} or {‘edgecolor’:’black’}
Default value: None
示例 1:
首先导入matplotlib包的pyplot模块。年和利润数组被初始化。接下来,使用给定数据绘制图形。 autopct 属性用于指定楔形内的文本与圆心的距离。 startangle 属性用于决定图表的绘制方向。默认情况下,startangle 为 0,这意味着图表从正 X 轴开始。这里 startangle 设置为 90,这意味着图表旋转 90 度,图表从正 Y 轴开始。 wedgeprops 属性用于设置每个楔子的属性。 edgecolor 设置为黑色,线宽设置为 2。Antialiasing 设置为 True 以防止图像出现锯齿效果。
下面是实现:
Python3
import matplotlib.pyplot as plt
years = [2016, 2017, 2018, 2019, 2020]
profit = [15, 19, 35, 14, 17]
# Plotting the pie chart
plt.pie(profit, labels = years, autopct = '%1.1f%%',
startangle = 90,
wedgeprops = {"edgecolor" : "black",
'linewidth': 2,
'antialiased': True})
# Equal aspect ratio ensures
# that pie is drawn as a circle.
plt.axis('equal')
# Display the graph onto the screen
plt.show()
Python3
import matplotlib.pyplot as plt
# the slices are ordered and
# plotted counter-clockwise:
product = 'Product A', 'Product B',
'Product C', 'Product D'
stock = [15, 30, 35, 20]
explode = (0.1, 0, 0.1, 0)
plt.pie(stock, explode = explode,
labels = product, autopct = '%1.1f%%',
shadow = True, startangle = 90,
wedgeprops= {"edgecolor":"black",
'linewidth': 3,
'antialiased': True})
# Equal aspect ratio ensures that
# pie is drawn as a circle.
plt.axis('equal')
plt.show()
输出:
示例 2:
首先导入matplotlib包的pyplot模块。 product 和 stock 数组被初始化。爆炸是一种可选的类似数组的结构,用于分隔饼图的某些部分。接下来,使用给定数据绘制图形。 autopct 属性用于指定楔形内的文本与圆心的距离。 shadow 属性是为分割部分生成的阴影。 startangle 属性用于决定图表的绘制方向。默认情况下,startangle 为 0,这意味着图表从正 X 轴开始。这里 startangle 设置为 90,这意味着图表旋转 90 度,图表从正 Y 轴开始。 wedgeprops 属性用于设置每个楔子的属性。 edgecolor 设置为黑色,线宽设置为 3。Antialiasing 设置为 true 以防止图像出现锯齿效果。
下面是实现:
蟒蛇3
import matplotlib.pyplot as plt
# the slices are ordered and
# plotted counter-clockwise:
product = 'Product A', 'Product B',
'Product C', 'Product D'
stock = [15, 30, 35, 20]
explode = (0.1, 0, 0.1, 0)
plt.pie(stock, explode = explode,
labels = product, autopct = '%1.1f%%',
shadow = True, startangle = 90,
wedgeprops= {"edgecolor":"black",
'linewidth': 3,
'antialiased': True})
# Equal aspect ratio ensures that
# pie is drawn as a circle.
plt.axis('equal')
plt.show()
输出: