如何用Matplotlib绘制饼图,第一个楔形从中午开始(即在馅饼的顶部)?默认情况是pyplot.pie()
将第一个边缘放在三点钟位置,能够自定义它会很棒。
答案 0 :(得分:5)
这有点像黑客,但你可以做这样的事情......
import matplotlib.pyplot as plt
from matplotlib.transforms import Affine2D
import numpy as np
x = [5, 20, 10, 10]
labels=['cliffs', 'frogs', 'stumps', 'old men on tractors']
plt.figure()
plt.suptitle("Things I narrowly missed while learning to drive")
wedges, labels = plt.pie(x, labels=labels)
plt.axis('equal')
starting_angle = 90
rotation = Affine2D().rotate(np.radians(starting_angle))
for wedge, label in zip(wedges, labels):
label.set_position(rotation.transform(label.get_position()))
if label._x > 0:
label.set_horizontalalignment('left')
else:
label.set_horizontalalignment('right')
wedge._path = wedge._path.transformed(rotation)
plt.show()
答案 1 :(得分:2)
仅仅因为谷歌搜索了我,我将在此期间添加,matplotlib将此作为pie
函数的附加参数包含在内。
现在,可以打电话给plt.pie(data, start_angle=90)
让中午开始第一次楔入。