如何从pie chart删除标签但保留图例?
import matplotlib.pyplot as plt
x = [15, 30, 55]
labels = [1, 2, 3]
plt.figure(figsize=(3, 3), dpi=72)
plt.pie(x, labels=labels)
plt.legend()
plt.savefig('pie_1.png')
答案 0 :(得分:3)
您可以从饼图中删除labels
参数并将其添加到图例中。而不是
plt.pie(x,labels=labels)
plt.legend()
使用
plt.pie(x)
plt.legend(labels=labels)
完整示例:
import matplotlib.pyplot as plt
x = [15, 30, 55]
labels = [1, 2, 3]
plt.figure(figsize=(3, 3), dpi=72)
plt.pie(x)
plt.legend(labels=labels)
plt.show()
答案 1 :(得分:1)
如果我是你,我会创建一个自定义图例,而不是让matplotlib创建自己的自动图例。您现在要求matplotlib使用labels=labels
中的plt.pie()
绘制标签。
import matplotlib.pyplot as plt
x = [15, 30, 55]
labels = [1, 2, 3]
colors = ['blue', 'red', 'grey']
plt.figure(figsize=(3, 3), dpi=72)
patches, texts = plt.pie(x, colors=colors)
plt.legend(patches, labels)
plt.show()
# plt.savefig('pie_1.png')
答案 2 :(得分:1)
作为IMCoins' answer的替代方法,这是继续进行的最佳方式,您也可以保留当前代码,但要从饼图中删除标签。
x = [15, 30, 55]
labels = [1, 2, 3]
plt.figure(figsize=(3, 3), dpi=72)
patches, texts = plt.pie(x, labels=labels)
plt.legend()
for t in texts:
t.remove()
答案 3 :(得分:0)
一种非常简单的方法是按照matlplotlib.pyplot.pie文档中的建议将标签距离设置为无。
在我的情况下,效果很好。
$validation = Validator::make($data, ['url' => 'required|url']);
if($validation->fails()){
dd("Failed");
}