python - Seaborn 散点图在某些图上反转 y 轴?
问题描述
我有两组数据用于创建散点图。我使用一个函数来为每一个创建绘图。出于某种原因,其中一组的图在图的顶部显示最小 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。
解决方案
@JohanC 是正确的!我将“无”更改为“math.nan”(并添加了“导入数学”),现在它可以正确绘制。
推荐阅读
- amazon-web-services - 尽管有策略,CloudFormation 仍无法访问模板中的 SSM 参数
- vb.net - 如何在没有逗号的情况下结束 for 循环?VB.NET
- php - Laravel:如何按日期分组并计算小时数
- android - React Native Image resizeMode='contain' 扭曲了 Android 设备和模拟器上的一些图像
- javascript - 重新打开浏览器时如何将数据保存到LocalStorage并检索
- python - Take one array and return 3 equal arrays if the array is not divisible by three, increase the size of the smaller array?
- javascript - 在 laravel 刀片中使用 refs 来预先检查复选框
- coldfusion - 使用地理编码验证地址的最佳方法?
- angular - 关于在 Angular 中使用 Material Design Component for Web (MDC Web) 的问题
- java - Executors.newSingleThreadExecutor 会一直运行在同一个系统核心上吗?