最近经常用Python画柱状图和heatmap,一般需要存储为矢量图的PDF文件,方便后期编辑。
这里面有些需要注意的地方,记录如下:
(另外我还发现在Jupyter中运行Python代码save的图像文件的字体有写异常,往往不是字母重叠就是距离太远,但是在Jupyter以外生成的图片正常。目前我还没有找到其中原因。)
1
| plt.rcParams['pdf.fonttype'] = 42
|
1
| plt.legend(loc='lower right', prop={'size': 25})
|
1
| plt.colorbar(im, fraction=0.046, pad=0.04)
|
1
| ax1.set_xticklabels(labels, rotation=60, ha='left')
|
不过改为Truetype字体后有个问题就是字体貌似会有偏移,暂时没有找到解决方案,我的OS是macOS用的Python3。希望能有解决方案,也许随着matplotlib的更新会解决。
以下是一个🌹画boxplot的完整例子:
1
2
3
4
5
6
7
8
9
10
11
12
13
| import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt
df = pd.read_csv("./paired_exp.txt", sep="\t")
df['tissue'] = ["cancer", "control"]*15
plt.figure(figsize=(6, 6))
sns.set(style="whitegrid", context="poster", font_scale=2)
ax = sns.boxplot(x="tissue", y="geneA", data=df, palette="husl", linewidth=1.5)
plt.ylim(0, 700000)
plt.savefig("./exp_boxplot.pdf", bbox_inches='tight')
|