我正在编写一个绘制自定义箱线图的函数。我想让箱子的面部是平的,并略带透明度,我想要每个箱子面周围有一条细实线(非透明)。
我一直试图在调用
当我将绘图查看到屏幕上时,它显示了我想要的样子。但是,当我创建一个pdf文件,例如
有人知道如何使线条保持不透明,同时保持箱形图面的透明度吗?
先谢谢了。
我一直试图在调用
matplotlib.pyplot.boxplot
之后通过设置箱的参数来实现此目的,如下所示。当我将绘图查看到屏幕上时,它显示了我想要的样子。但是,当我创建一个pdf文件,例如
matplotlib.pyplot.savefig("output.pdf")
时,该线不是实心的,也是透明的。当我放大pdf文件时,这种透明度就会变得明显。有人知道如何使线条保持不透明,同时保持箱形图面的透明度吗?
先谢谢了。
from matplotlib import pyplot as plt
import numpy as np
data = {}
data['a'] = np.arange(12)+1
data['b'] = np.arange(14)+1
data['c'] = np.arange(8)+1
cols = ['red', 'blue', 'green']
controls = ['trt_a', 'trt_b', 'trt_c']
fig, ax = plt.subplots()
boxplot_dict = ax.boxplot([data[x] for x in ['a', 'b', 'c']], \
positions = [1, 1.5, 2], labels = controls, \
patch_artist = True, widths = 0.25)
for b, c in zip(boxplot_dict['boxes'], cols):
b.set_alpha(0.6)
b.set_edgecolor(c) # or try 'black'
b.set_facecolor(c)
b.set_linewidth(1)
ax.set_ylim([0,16])
plt.savefig("test_boxplot.pdf")
plt.close()
我尝试了在这里给出的直方图建议,通过将颜色设置为包含alpha级别[(0, 0, 1, 0.6), (1, 0, 0, 0.6), (0, 1, 0, 0.6)]
,但似乎对于箱线图无效。