我正在使用seaborn 和matplotlib 绘制条形图。我想用文字和线条来注释情节。
这是我生成该图的策略(抱歉提供,plot_data但它相当大):
plt.figure()
ax = seaborn.barplot(x='cell_line', y='DeltaCt', data=plot_data, hue='time')
plt.title('Baseline: {}'.format(g))
plt.ylabel('DeltaCt')
plt.xlabel('')
trans = ax.get_xaxis_transform()
ax.annotate('Neonatal', xy=(0.4, -0.1), xycoords=trans)
plt.show()
Run Code Online (Sandbox Code Playgroud)
一些相关问题:
这里您需要一条垂直线,但该线需要位于沿 x 轴的数据坐标中。因此您可以使用ax.get_xaxis_transform(). 要使线在轴外可见,请使用clip_on = False.
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
plot_data = pd.DataFrame({"cell_line": np.random.choice(list("ABCDEFG"), size=150),
'DeltaCt' : np.random.rayleigh(5,size=150),
"time":np.random.choice([0,96], size=150)})
plt.figure()
ax = sns.barplot(x='cell_line', y='DeltaCt', data=plot_data, hue='time',
order=list("ABCDEFG"))
plt.title('Baseline: {}'.format("H"))
plt.ylabel('DeltaCt')
plt.xlabel('')
trans = ax.get_xaxis_transform()
ax.annotate('Neonatal', xy=(1, -.1), xycoords=trans, ha="center", va="top")
ax.plot([-.4,2.4],[-.08,-.08], color="k", transform=trans, clip_on=False)
plt.show()
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4670 次 |
| 最近记录: |