将置信区间一个一个地对齐
Align confidence intervals one below the other
假设我有一个 pandas 数据框,其中有 3 列感兴趣:id
(文本)、min
和 max
(浮点数)代表某些参数的置信区间的下限和上限(以 % 为单位),例如:
id min max
A 3.5 7.8
B 11.35 13.25
C 0.0 2.0
我想在图中表示这些数据(如下所示),ids
在垂直轴上位于彼此下方,每条线显示相应 [ 的置信区间的变化=11=].
当然,我的问题是:在 Python 中是否有一种(非常)简单的方法来做到这一点?
在python中,我们可以使用下面的代码使用matplotlib库解决它。
也附上了相同的输出图像。
import matplotlib.pyplot as plt
import numpy as np
import pandas as pd
id = ["A","B","C"]
min =[3.5,1.35,0.0]
max =[7.8, 13.25, 2.0]
data = [id,min,max]
df = pd.DataFrame(data)
df = df.T
df.columns=["id","min","max"]
for index, row in df.iterrows():
m2m = np.linspace( row['min'],row['max'])
y_val = np.array([row["id"] for _ in range(len(m2m))])
plt.plot(m2m, y_val )
Output Image
据我所知,没有专门绘制置信区间的图表。但是,您可以使用 matplotlib.pyplot.barh()
。代码如下。
数据框准备:
>>> import pandas as pd
>>> df = pd.DataFrame(
... {
... 'id': ['A', 'B', 'C'],
... 'min': [3.5, 11.35, 0.0],
... 'max': [7.8, 13.25, 2.0]
... }
... )
>>> df = df.sort_values(by='id', ascending=False)
>>> print(df)
id min max
2 C 0.00 2.00
1 B 11.35 13.25
0 A 3.50 7.80
制作图表:
>>> import matplotlib
>>> import matplotlib.pyplot as plt
>>> plt.style.use('seaborn')
>>>
>>> plt.figure(figsize=(9.5, 2.5))
>>> plt.barh(df['id'], height=0.5, width=df['max']-df['min'], left=df['min'])
>>> plt.title('Chart title')
>>> plt.show()
假设我有一个 pandas 数据框,其中有 3 列感兴趣:id
(文本)、min
和 max
(浮点数)代表某些参数的置信区间的下限和上限(以 % 为单位),例如:
id min max
A 3.5 7.8
B 11.35 13.25
C 0.0 2.0
我想在图中表示这些数据(如下所示),ids
在垂直轴上位于彼此下方,每条线显示相应 [ 的置信区间的变化=11=].
当然,我的问题是:在 Python 中是否有一种(非常)简单的方法来做到这一点?
在python中,我们可以使用下面的代码使用matplotlib库解决它。
也附上了相同的输出图像。
import matplotlib.pyplot as plt
import numpy as np
import pandas as pd
id = ["A","B","C"]
min =[3.5,1.35,0.0]
max =[7.8, 13.25, 2.0]
data = [id,min,max]
df = pd.DataFrame(data)
df = df.T
df.columns=["id","min","max"]
for index, row in df.iterrows():
m2m = np.linspace( row['min'],row['max'])
y_val = np.array([row["id"] for _ in range(len(m2m))])
plt.plot(m2m, y_val )
Output Image
据我所知,没有专门绘制置信区间的图表。但是,您可以使用 matplotlib.pyplot.barh()
。代码如下。
数据框准备:
>>> import pandas as pd
>>> df = pd.DataFrame(
... {
... 'id': ['A', 'B', 'C'],
... 'min': [3.5, 11.35, 0.0],
... 'max': [7.8, 13.25, 2.0]
... }
... )
>>> df = df.sort_values(by='id', ascending=False)
>>> print(df)
id min max
2 C 0.00 2.00
1 B 11.35 13.25
0 A 3.50 7.80
制作图表:
>>> import matplotlib
>>> import matplotlib.pyplot as plt
>>> plt.style.use('seaborn')
>>>
>>> plt.figure(figsize=(9.5, 2.5))
>>> plt.barh(df['id'], height=0.5, width=df['max']-df['min'], left=df['min'])
>>> plt.title('Chart title')
>>> plt.show()