Я обнаружил, что RenderOptions.BitmapScalingMode = "NearestNeighbor" не работает для меня. Я использую Windows XP x32 с DirectX 9.0c. Поскольку фактический рендеринг для WPF выполняется с помощью DirectX, это может иметь эффект. У меня есть anti-aliasing включен для XP со следующими записями реестра:
[HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Avalon.Graphics] "MaxMultisampleType" = dword: 00000004 "EnableDebugControl" = dword: 00000001
Однако включение этих настроек не влияет на изображения. Я думаю, что это только эффекты 3D-видовых экранов.
Наконец, я обнаружил, что размытие происходит с текстом TextBlocks, а также с изображениями. И размытие происходит только для некоторых текстовых блоков и изображений, а не для всех.
Вы можете определить пончик, используя аргумент wedgeprops
в pie
.
inner_radius = 0.7
chart_radius = 1.2
wedge_props = dict(width=chart_radius-inner_radius)
ax1.pie(data, labels=recipe, radius=chart_radius, wedgeprops=wedge_props)
ax2.pie(data, labels=recipe, radius=chart_radius, wedgeprops=wedge_props)
Да, вы можете сделать это с помощью loop +, используя wedgeprops
, как Криштиану Келер предложил в другом ответе:
import matplotlib.pyplot as plt
recipe = "flour", "sugar", "egg", "butter", "milk", "yeast"
fracs = [15, 30, 45, 10]
data = [225, 90, 50, 60, 100, 5]
fig = plt.figure()
for i in range(2):
ax = fig.add_axes([i/2, .1, .5, .5], aspect=1)
ax.pie(data, labels=recipe, radius=1.2, wedgeprops={'width': 0.5})
ax.set_title('A donut {}'.format(i+1), y=1.1)
plt.text(0, -1.6, 'Description {}'.format(i+1), ha='center')
plt.savefig('donut1.png')
plt.show()