如何在python中创建堆积线图?

时间:2019-11-25 17:57:15

标签: python pandas matplotlib data-visualization seaborn

在300个独立细胞的200个时间步长内,我具有荧光值。我想将它们全部绘制在同一图上,一图叠加。我不想绘制堆积面积图。下图是我要寻找的图像,但实际上是每个单元格的数据绘制在其自己的y轴上,所有单元格都具有相同的x轴。

image here

2 个答案:

答案 0 :(得分:1)

在python中,主要的绘图工具(可与熊猫配合使用)是matplotlib(较旧)和seaborn(较新和较新的版本)。

查看seaborn的文档(https://seaborn.pydata.org/tutorial/axis_grids.html)和食谱页面(https://python-graph-gallery.com/122-multiple-lines-chart/) 对于多组分合成图,您可以显示荧光数据,如下所示:

# libraries
import matplotlib.pyplot as plt
import numpy as np
import pandas as pd

# Data
df=pd.DataFrame({'x': range(100), 
                 'trace1': np.random.randn(100), 
                 'trace2': np.random.randn(100)+10, 
                 'trace3': np.random.randn(100)+20})

# multiple line plot
plt.plot( 'x', 'trace1', data=df, marker='', color='black', linewidth=2)
plt.plot( 'x', 'trace2', data=df, marker='', color='black', linewidth=2)
plt.plot( 'x', 'trace3', data=df, marker='', color='black', linewidth=2, label="GluK1c")
plt.legend()

我不喜欢这种 hack (向每个跟踪y值添加数字),因为应该有一种方法可以使您的y轴值偏移matplotlib中,但在谷歌搜索时找不到该选项。

在这种情况下,因为您需要极简的黑线痕迹(神经科学期刊所期望的),所以matplotlib和seaborn可以媲美。

有关过多的图例位置/格式选项,请参见https://matplotlib.org/3.1.1/api/_as_gen/matplotlib.pyplot.legend.html enter image description here

我希望我在实验室工作时拥有这些工具。会比我那时做的好得多。

答案 1 :(得分:0)

您可以这样做,例如:

your_df.plot(subplots=True, layout=(10,30));