首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >调整barplot轴以匹配度量,而不是范畴标度。

调整barplot轴以匹配度量,而不是范畴标度。
EN

Stack Overflow用户
提问于 2021-07-01 09:56:30
回答 1查看 218关注 0票数 0

上下文

我有一个包含聚集数据的pandas-DataFrame,我想将其绘制为条形图:

代码语言:javascript
运行
AI代码解释
复制
df = pd.DataFrame({
    "x_axis": np.arange(0., 1., .01)
    , "counts": some_aggregation
})

# df looks like this
x_axis |counts 
--------------
0.00   | 1.0    
0.01   | 0.0    
0.02   | 14.0   
...
1.00   | 12.0   

可以看到,这提供了

  • x_axis:一列,我希望使用它来提供x轴,因为计数可以包含zero-values
  • counts,这是来自一个组的聚合,我希望通过它在x_axis.

中绘制所提供的发行版。

对于seabornmatplotlib本身,可以很容易地将其可视化:

代码语言:javascript
运行
AI代码解释
复制
s = sns.barplot(x='x_axis', y="counts", data=df)

问题

当我绘制所描述的图表时,X-滴答被matplotlib转换为matplotlib,因为在x_axis中提供的分发是作为分类数据处理的。打印挠痒痒标签显示了以下问题:

代码语言:javascript
运行
AI代码解释
复制
list(s.get_xticklabels())

# Output
[Text(0, 0, '0.0'),
 Text(1, 0, '0.01'),
 Text(2, 0, '0.02'),
...
]

当然,通过执行以下操作,我可以将x-ticklabels设置为正确的位置:

代码语言:javascript
运行
AI代码解释
复制
# Change x-axis-position of x-tick-labels
s.set_xticks(s.get_xticks() * .01)

# Output
[Text(0.0, 0, '0.0'),
 Text(0.01, 0, '0.01'),
 Text(0.02, 0, '0.02'),
...
]

无论如何,虽然勾标本身现在处于正确位置,但图表本身并没有更新以显示新放置标签上方的条形图。

问题

我可以做一个to选项:

  • sns.barplot的“范畴”标度转换为度量尺度?这将是我最喜欢的解决方案,因为我实际上希望与范围为set_xlim((0., 1.)).
  • Adjust的其他绘图共享x轴,以便使条形图再次与s.set_xticks(s.get_xticks() * .01)

匹配。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-07-01 14:52:52

您可以使用sns.histplot(),通过weights和显式地在x-值之间设置bin边界:

代码语言:javascript
运行
AI代码解释
复制
from matplotlib import pyplot as plt
import seaborn as sns
import pandas as pd
import numpy as np

xs = np.arange(0., 1., .01)
df = pd.DataFrame({"x_axis": xs,
                   "counts": np.random.randint(0, 10, len(xs))})
fig = plt.figure(figsize=(16, 4))
ax = sns.histplot(data=df, x="x_axis", weights="counts", bins=np.arange(-0.005, 1, 0.01))
ax.margins(x=0.005)  # the default margins left and right are too large
ax.set_xticks(xs)
ax.tick_params(axis='x', labelrotation=90)
fig.tight_layout()
plt.show()

为了有更多的标准x-滴答,ax.set_xticks(xs)和旋转可以被忽略.

还请注意,"np.arange(0.,1.,.01)“可能具有欺骗性。由于它与浮动一起工作,取决于舍入错误,最终的1.0可能包括在内,也可能不包括。处理这一问题的一种方法是使端点值更大(如果您想包含它,例如np.arange(0, 1.0001, .1)),或者更小(只提前停止一个值)。也可以将数字创建为整数,然后再进行除法(np.arange(0, 100)/100)。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68214891

复制
相关文章
如何使用 Tmuxp 来优雅的管理多个 Tmux 会话
事实上,tmuxp 也是一个构建于 tmux 之上的对象关系映射的 ORM 的 API 工具,就是利用 tmux 工具定义的窗格(pane)、窗口(windows)和会话(session),以创建关联视图的 Server, Session, Window, Pane 对象。我们在使用的时候,可以使用 YAML, JSON 以及 dict 字配置项来启动我们配置好的窗口和面板。使用时候需要注意的是,只支持 tmux>=1.8 的版本。
iMike
2021/05/18
4.4K0
如何使用 Tmuxp 来优雅的管理多个 Tmux 会话
如何使用SMBSessionSpoofer伪造SMB会话
 关于SMBSessionSpoofer  SMBSessionSpoofer是一款针对SMB会话的安全工具,该工具可以帮助广大研究人员轻松创建出一个伪造的SMB会话,并以此来欺骗攻击者访问和进入蜜罐设备。该工具虽然结构简单,但功能强大,我们只需要将其cpp主程序文件下载下来,并在Visual Studio 2019中进行编译后,即可上手使用。  工具机制  当攻击者运行SharpHound并收集目标组织中的会话信息时,会根据自己的经验来分析针对目标主体的攻击路径,并且还可以识别在第二层基础设施(工作站)中
FB客服
2023/03/30
2.5K0
如何使用SMBSessionSpoofer伪造SMB会话
PythonWebServer如何同时处理多个请求
源于知乎上一个问题:https://www.zhihu.com/question/56472691/answer/293292349
the5fire
2019/03/01
1.9K0
使用node.js如何简单快速的搭建一个websocket聊天应用
var ws = require(“nodejs-websocket”); console.log(“开始建立连接…”)
马克社区
2022/06/13
4610
使用node.js如何简单快速的搭建一个websocket聊天应用
初始化项目 npm init 安装nodejs-websocket npm install nodejs-websocket 创建并编辑启动文件 创建一个名为app.js文件,并且编辑它。 var ws = require("nodejs-websocket"); console.log("开始建立连接...") var [user1,user2,user1Ready,user2Ready] = [null,null,false,false]; ws.createServer(function(
Vam的金豆之路
2021/12/01
6420
使用node.js如何简单快速的搭建一个websocket聊天应用
通过跳板机管理多个ssh会话
为了加强服务器的安全性,一般情况下,服务器的登陆管理都通过跳板机(或堡垒机)进行管理和维护,内网的之间的ssh并不对外开放.
明哥的运维笔记
2020/06/30
1.8K0
通过跳板机管理多个ssh会话
Node.js如何处理健壮性
在极客教育出版了一个视频是关于《Node.js 异常处理-健壮性》,本文章主要是从内容上介绍如何来处理Node.js异常问题。如果希望学习可前往极客学院:http://www.jikexueyuan.com/course/2373.html 本文章的关键词 - 进程退出 - 内存泄漏 - domain安全保护 ---- Node.js 异常的危害 很多初学的同学很少会关注Node.js的服务安全问题,而当服务器在生成环境遇到此类问题时,又会显得速手无策,因此在学习Node.js的初期了解其
蛋未明
2018/06/07
1.1K0
Node.js 是如何处理请求的
前言:在服务器软件中,如何处理请求是非常核心的问题。不管是底层架构的设计、IO 模型的选择,还是上层的处理都会影响一个服务器的性能,本文介绍 Node.js 在这方面的内容。
theanarkh
2023/10/04
5230
Node.js 是如何处理请求的
Node.js内存溢出时如何处理?
Node.js 做密集型运算,或者所操作的数组、对象本身较大时,容易出现内存溢出的问题,这是由于 Node.js 的运行环境依赖 V8 引擎导致的。如果经常有较大数据量运算等操作,需要对 Node.js 运行环境限制有充分的了解。
coder_koala
2019/08/21
4.9K0
Node.js内存溢出时如何处理?
PHP的会话处理函数session
当运行一个应用程序时,你会打开它,做些更改,然后关闭它。这很像一次会话。计算机清楚你是谁。它知道你何时启动应用程序,并在何时终止。但是在因特网上,存在一个问题:服务器不知道你是谁以及你做什么,这是由于 HTTP 地址不能维持状态。
于果
2021/08/25
2.5K0
PHP会话处理相关函数介绍
在PHP开发中,比起Cookie,Session 是存储在服务器端的会话,相对安全,并且不像 Cookie 那样有存储长度限制,这里我们详细介绍一下PHP处理会话函数将要用到10个函数。 PHP
wangxl
2018/03/07
1.3K0
PHP会话处理相关函数介绍
Arduino如何同时使用多个串口
如果想要给Arduino UNO R3同时接上WiFi模块和蓝牙模块时,但是Arduino的串口只有一个,怎样才能让Arduino同时使用多个串口呢?
小雨coding
2020/06/09
4.9K0
Arduino如何同时使用多个串口
如何正确使用Node.js事件[每日前端夜话0x4B]
事件驱动的编程变得流行之前,在程序内部进行通信的标准方法非常简单:如果一个组件想要向另外一个发送消息,只是显式地调用了那个组件上的方法。但是在 react 中用的却是事件驱动而不是调用。
疯狂的技术宅
2019/04/23
3.6K0
如何正确使用Node.js事件[每日前端夜话0x4B]
Node.js RESTful API如何使用?
REST(Representational State Transfer)是一种软件架构风格,用于设计网络应用程序的通信方式。RESTful API 是基于 REST 架构风格的 API 设计,它使用标准的 HTTP 方法(GET、POST、PUT、DELETE 等)来进行资源的操作和交互。
网络技术联盟站
2023/07/07
4610
JS中如何处理多个ajax并发请求?
通常 为了减少页面加载时间,先把核心内容显示处理,页面加载完成后再发送ajax请求获取其他数据 这时就可能产生多个ajax请求,为了用户体验,最好是发送并行请求,这就产生了并发问题,应该如何处理? (1)并行改串行 如果业务逻辑和用户体验允许的情况下,可以改为串行,处理起来最简单 function async1(){ //do sth... async2(); } function async2(){ //do sth... } async1(); (2)回调计数 function
dys
2018/04/02
5.6K0
如何处理会话等待事件与ORA-21780故障
作者 | 张维照,Oracle ACEA,2006年起从事数据库管理工作,2009年转 Oracle,从事过多套 TB 级省级工商、医疗、交通、人社、电信运营等数据库维护优化工作,擅长Oracle 数据库性能问题的分析与解决,Oracle数据库故障分析,Oracle数据库升级迁移。
数据和云
2018/12/24
1K0
Seata如何处理跨多个请求的事务?
Seata 是一种开源的分布式事务解决方案,能够处理跨多个请求的事务,适用于各种容器、语言和数据访问类型。在微服务架构下,依赖多个服务的操作可能导致分布式事务的问题。Seata 提供了完整的解决方案以确保数据的一致性和可靠性。
用户1289394
2023/09/11
3460
Seata如何处理跨多个请求的事务?
Node.js 如何处理 ES6 模块
一种是 ES6 模块,简称 ESM;另一种是 Node.js 专用的 CommonJS 模块,简称 CJS。这两种模块不兼容。
ruanyf
2020/08/22
7260
Angular 使用 RxJS 优化处理多个Http请求
注意:上面的this.http.get... 处理HTTP最好放到单独的Service文件中,再注入到Component。这里为了演示没有这么做。
mafeifan
2019/03/15
4.2K0
关于node.js:ExpressJS、Websocket中的session会话共享
最近在使用Nodejs+TypeScript编写一个简单通用的框架,包含如下功能: 一、物联网接口: (1)、后台接口框架 (2)、http服务器 (3)、websocket服务器 (4)、http与websocket关联,添加session
ccf19881030
2020/07/22
2.3K0

相似问题

Node.js:处理多个会话

12

使用php与多个会话聊天

10

使用SignalR的多个聊天会话

12

使用多个前端处理PHP会话

12

node.js websocket聊天以处理并行颜色

31
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档