[英]change specific subplot background color (outside of pie chart)
我有以下帶有餅圖的子圖,由下面的代碼輸出。
我想以不同的顏色為奇數子圖的背景(僅上圖中的中間陰影)着色,但是我無法使其工作。
我看了幾個地方,從這個問題的幾個答案中,我都嘗試了ax.set_facecolor('red')
和ax.patch.set_facecolor('red')
,但沒有一個導致替代的陰影/着色模式。我在尋找。
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
n = 3
nums_df = pd.DataFrame([np.random.randint(1, 20, size=5) for _ in xrange(n)])
row_labels = ["row {:d}".format(i) for i in xrange(n)]
nums_df.index = row_labels
# create a figure with n subplots
fig, axes = plt.subplots(1, n)
# create pie charts
for i, ax in enumerate(axes):
ax.pie(nums_df.loc[row_labels[i]], labels=nums_df.loc[row_labels[i]])
ax.axis("equal")
if i%2 == 1:
ax.set_facecolor('red')
# ax.patch.set_facecolor('red')
plt.show()
默認情況下,餅圖的完整軸為“ off”。 您可以使用frame
參數將其設置為on。
ax.pie(..., frame=True)
這樣會在軸上產生刻度線和刻度標簽,因此,最好將其設置在外部,
ax.pie(..., frame=False)
ax.set_frame_on(True)
另外,您可能想拉起刺,
for _, spine in ax.spines.items():
spine.set_visible(False)
或者,在一行中
plt.setp(ax.spines.values(),visible=False)
最后,為使勾號標簽不超過軸區域,可以固定軸范圍,例如ax.axis([-1,1,-1,1])
並使用較小的圓餅半徑,例如radius=.27
。
完整的復制代碼
import pandas as pd import numpy as np import matplotlib.pyplot as plt n = 3 nums_df = pd.DataFrame([np.random.randint(1, 20, size=5) for _ in xrange(n)]) row_labels = ["row {:d}".format(i) for i in xrange(n)] nums_df.index = row_labels fig, axes = plt.subplots(1, n) for i, ax in enumerate(axes): ax.pie(nums_df.loc[row_labels[i]], labels=nums_df.loc[row_labels[i]], frame=False, radius=0.27) ax.set_frame_on(True) ax.axis("equal") ax.axis([-1,1,-1,1]) plt.setp(ax.spines.values(),visible=False) if i%2 == 1: ax.set_facecolor('red') plt.show()
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.