繁体   English   中英

如何从应用于单列的条件和同一 dataframe 的另一单列上可用的数据中的 plot 子图?

[英]How to plot subplots from a condition applied on a single column and the data available on another single coloumn of the same dataframe?

我有一个 dataframe 很像下面的一个:

data = {'A':[21,22,23,24,25,26,27,28,29,30,11,12,13,14,15,16,17,18,19,20,1,2,3,4,5,6,7,8,9,10],
        'B':[8,8,8,8,8,8,8,8,8,8,5,5,5,5,5,5,5,5,5,5,3,3,3,3,3,3,3,3,3,3],
        'C':[10,15,23,17,18,26,24,30,35,42,44,42,38,36,34,30,27,25,27,24,1,0,2,3,5,26,30,40,42,50]}

data_df = pd.DataFrame(data)
data_df

我想要子图,子图的数量应该等于“B”列的唯一值的数量。 X 轴 = “A”列中的值,Y 轴 = “C”列中的值。

我试过的代码:

fig = px.line(data_df, 
              x='A', 
              y='C', 
              color='B',
              facet_col = 'B',
              )
fig.show()

给 output 之类的

在此处输入图像描述

但是,我希望将图表放在一列中,每个图表都自动缩放到相关区域和轴上的分辨率。 可能性:我可以以某种方式使用 groupby 命令来做到这一点吗?

由于基于其他数据,我可能在“B”列中有其他数量的唯一值(例如 5 个唯一值),我希望这段代码能够动态工作。 请帮助我。

PS:plotly快递模块用于plot图。

您可以改为使用参数facet_row = 'B' ,它将自动按行堆叠子图。

import pandas as pd
import plotly.express as px

data = {'A':[21,22,23,24,25,26,27,28,29,30,11,12,13,14,15,16,17,18,19,20,1,2,3,4,5,6,7,8,9,10],
        'B':[8,8,8,8,8,8,8,8,8,8,5,5,5,5,5,5,5,5,5,5,3,3,3,3,3,3,3,3,3,3],
        'C':[10,15,23,17,18,26,24,30,35,42,44,42,38,36,34,30,27,25,27,24,1,0,2,3,5,26,30,40,42,50]}

data_df = pd.DataFrame(data)
fig = px.line(data_df, 
              x='A', 
              y='C', 
              color='B',
              facet_row = 'B',
              )
fig.show()

在此处输入图像描述

这可能无法涵盖您的整个问题,但重点是:

我想将图表放在一个列中

您可以通过以下方式指定:

facet_col_wrap=1

Plot 1

在此处输入图像描述

完整代码:

import plotly.express as px
import pandas as pd
data = {'A':[21,22,23,24,25,26,27,28,29,30,11,12,13,14,15,16,17,18,19,20,1,2,3,4,5,6,7,8,9,10],
        'B':[8,8,8,8,8,8,8,8,8,8,5,5,5,5,5,5,5,5,5,5,3,3,3,3,3,3,3,3,3,3],
        'C':[10,15,23,17,18,26,24,30,35,42,44,42,38,36,34,30,27,25,27,24,1,0,2,3,5,26,30,40,42,50]}

data_df = pd.DataFrame(data)
data_df

fig = px.line(data_df, 
              x='A', 
              y='C', 
              color='B',
              facet_col = 'B',
              facet_col_wrap=1
             )

fig.show()

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM