【发布时间】:2017-08-23 05:12:05
【问题描述】:
我想使用 seaborn 将点图和箱线图组合成一个图。该组合本身有效,但由于两个数据帧的 x 轴值不在同一范围内,我得到错误的输出(第二个数据帧的 x 值将被忽略)。 以下是我的部分数据集:
import pandas as pd
bpdata=pd.DataFrame({'Ldate': [20150202, 20150202, 20150202, 20151117, 20151117, 20151117, 20160205, 20160205, 20160205], 'Lreflectance': [0.067, 0.0482, 0.0555, 0.099, 0.0956, 0.0931, 0.0757, 0.0663, 0.0566]})
Mplotdata=pd.DataFrame({'Mdate':[20150202, 20150407,20160202], 'Mreflectance': [0.0868, 0.0833,0.0719]})
单独绘制:
import seaborn as sns
plot=sns.pointplot(data=Mplotdata, x='Mdate', y='Mreflectance', color='dimgrey', marker='o')
for item in plot.get_xticklabels():
item.set_rotation(45)
plot=sns.boxplot(data=bpdata, x='Ldate', y='Lreflectance', color='lightgray')
for item in plot.get_xticklabels():
item.set_rotation(45)
看起来像这样: pointplot (left) and boxplot (right)
但是当我尝试将点图和箱线图放在一个图中时
plot=sns.boxplot(data=bpdata, x='Ldate', y='Lreflectance', color='lightgray')
plot=sns.pointplot(data=Mplotdata, x='Mdate', y='Mreflectance', color='dimgrey', marker='o')
for item in plot.get_xticklabels():
item.set_rotation(45)
看起来像这样:
在此图中,x 轴仅显示第一个图的值。如果我更改点图和箱线图的顺序,它也将只使用第一个数据帧的 x 值,第二个将被忽略。
知道如何解决这个问题吗?
我在这个论坛、谷歌或 matplotlib/seaborn 文档中没有找到任何解决方案。
【问题讨论】:
-
您能否包含 (edit) 一些重现问题的最小数据集?寻求调试帮助时请查看minimal reproducible example。
-
谢谢@MSeifert,完成了。
-
不清楚您希望在图中的哪个位置看到哪些值。此外,您显示的图像似乎与数据不匹配。请记住,您在这里交谈的人可能是数据分析和python绘图方面的专家,但他们对您的特殊问题一无所知,因此您需要向他们解释。
-
是的,对不起!第一张图片由两个图组成,一个箱线图和一个点图。那么就很清楚了。我不知道,为什么只显示一个,我会尝试添加另一个。感谢您的评论。
标签: python plot seaborn boxplot