有沒有辦法改變matplotlib中violin
曲線的顏色?改變matplotlib的小提琴曲線的顏色
默認的顏色是這種「褐色」顏色,這並不算太壞,但我想用不同的顏色例如前3把小提琴來突出顯示它們。我在documentation中找不到任何參數。任何想法或黑客的顏色不同的小提琴?
有沒有辦法改變matplotlib中violin
曲線的顏色?改變matplotlib的小提琴曲線的顏色
默認的顏色是這種「褐色」顏色,這並不算太壞,但我想用不同的顏色例如前3把小提琴來突出顯示它們。我在documentation中找不到任何參數。任何想法或黑客的顏色不同的小提琴?
matplotlib.pyplot.violinplot()
說,它返回:
對應的字典的violinplot的每個部件,以創建相應的收集實例的列表。本字典有以下鍵:
bodies
:包含每個小提琴的填充區域的matplotlib.collections.PolyCollection
實例的列表。的PolyCollection
s- [...等等...]
方法包括:
set_color(c)
這同時設置facecolor和edgecolor,set_facecolor(c)
和set_edgecolor(c)
所有這些都採用「matplotlib顏色arg或rgb序列一個元組」因此,它看起來就像你可能只是在結果的身體列表循環和修改每個facecolor:
violin_parts = plt.violinplot(...)
for pc in violin_parts['bodies']:
pc.set_facecolor('red')
pc.set_edgecolor('black')
這是一個有點奇怪,雖然你可以不設置此當創建它像共同的情節類型。我想這可能是因爲操作創建了很多位(前面提到的PolyCollection
以及5個其他的LineCollections
),那麼額外的參數將是不明確的。
謝謝,補丁,拉鍊顏色(vplot ['bodies'],顏色): patch.set_color(color)'做了這個工作! – Sebastian 2014-10-10 03:51:38
這不適合某人嗎?讓我知道... – 2017-06-01 16:22:05
或簡單地使用'plt.setp',例如'plt.setp(violin_parts ['bodies'],facecolor ='red',edgecolor ='black')' – 2017-06-13 13:29:53
import numpy as np
import matplotlib.pyplot as plt
%matplotlib inline
rrred = '#ff2222'
bluuu = '#2222ff'
x = np.arange(2, 25)
y = np.array([xi * np.random.uniform(0, 1, 10**3) for xi in x]).T
# Create violin plot objects:
fig, ax = plt.subplots(1, 1, figsize = (8,8))
violin_parts = ax.violinplot(y, x, widths = 0.9, showmeans = True, showextrema = True, showmedians = True)
# Make all the violin statistics marks red:
for partname in ('cbars','cmins','cmaxes','cmeans','cmedians'):
vp = violin_parts[partname]
vp.set_edgecolor(rrred)
vp.set_linewidth(1)
# Make the violin body blue with a red border:
for vp in violin_parts['bodies']:
vp.set_facecolor(bluuu)
vp.set_edgecolor(rrred)
vp.set_linewidth(1)
vp.set_alpha(0.5)
你可以打開一個功能要求添加該功能?小提琴在1.4中畫出了一個新的特徵,並且(顯然)仍然需要一些改進。 – tacaswell 2014-10-10 13:58:56
你是如何設法在情節中使用圓圈標記的? – xyz 2016-07-11 15:06:52