【发布时间】:2020-12-08 21:11:26
【问题描述】:
我有两组数据用于创建散点图。我使用一个函数来为每一个创建绘图。出于某种原因,其中一组的图在图的顶部显示最小 y 值(翻转的图像,但文本未反转)。另一个按预期显示。
数据是从 Excel 文件中读取的,并且本质上是相同的。正如我所说,我为每个数据集调用相同的函数。
绘制情节的代码是:
from scipy.stats.distributions import chi2
import matplotlib.pyplot as plt
import seaborn as sns
import numpy as np
def mcbf_plot(df, alpha=0.8):
xval = list(range(len(df)))
xval_l = [item-0.1 for item in xval]
xval_r = [item+0.1 for item in xval]
xlabs = list(df['venue'])
g = sns.scatterplot(data=df, x=xval, y='mcbof_pe', s=100, color='k')
plt.plot([xval,xval], [df['ci_mcbof_l'],df['ci_mcbof_h']], color='k')
plt.plot([xval_l, xval_r], [df['ci_mcbof_l'],df['ci_mcbof_l']],color='k')
plt.plot([xval_l, xval_r], [df['ci_mcbof_h'],df['ci_mcbof_h']],color='k')
plt.xticks(np.arange(0, len(df), 1.0))
plt.title('Results by Event')
plt.xlabel('Event')
plt.ylabel('Cycles')
g = g.set_xticklabels(labels=xlabs,rotation=45)
这是我为生成情节而运行的脚本:
%matplotlib inline
import os
import glob
from pandas import DataFrame, Series
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
import datetime
import binom.binom as bn
import matplotlib.dates as mdates
hist_ram = pd.read_excel('c:/User/Documents/RAM/historic_ram.xlsx')
bn.mcbf_plot(hist_ram, 0.8)
这是数据的一个例子:
venue miles events fails mmbof_pe ci_mmbof_l ci_mmbof_h mcbof_pe \
0 a 1749.8 416 5 349.96 188.664 719.315 83.2
1 b 353.3 47 14 25.2357 17.5527 37.3088 3.35714
2 c 1610.1 288 7 230.014 136.786 413.401 41.1429
3 d 549.1 83 0 None 341.175 None None
ci_mcbof_l ci_mcbof_h
0 44.8533 171.011
1 2.33505 4.96324
2 24.4671 73.9454
3 51.5708 None
知道为什么 seaborn/matplotlib 会反转一个情节,但不能同时反转(或都不反转)?
编辑添加:无是导致问题的原因。是否有另一种方法表明数据集中给定单元格没有值?基本上,我想绘制失败测试的点估计和置信区间,但只绘制没有失败的测试的置信下限。数据将 LCL 视为 LCI 值,并将 PE 和 UCI 设置为 None。
【问题讨论】:
-
如果您将一些示例硬编码数据点添加到您的代码中会很有帮助,这样可以执行它来实时查看问题,当然还有所需的
imports 和调用您的函数,使其成为最小的可执行示例。但是,请尽量简短。 -
可能有些列是字符串而不是数字
-
@JohanC 很可能是正确的
标签: python matplotlib seaborn scatter-plot