Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >Seaborn lineplot -基于峰值的数据

Seaborn lineplot -基于峰值的数据
EN

Stack Overflow用户
提问于 2021-01-07 10:27:50
回答 2查看 182关注 0票数 0

我想根据山峰所在的位置给我的海上线条图的线条上色。这是我当前的图

如图所示,一些天的峰值在4.72,而另一些天在5.24和5.83。我想根据这些山峰来上色。因此,对于下面的图,它将有3种颜色,同时保持图例中的日期。

这是我的熊猫的数据帧,叫做select_bins

代码语言:javascript
运行
AI代码解释
复制
               2.79  3.1  3.44  3.82  4.25  4.72  5.24  5.83  6.47  7.19  7.99  8.88
date                                                                           
20180527     1   28   101   270   694  1253  1134   528   106    10     0     0
20180603     0    0     0     3    12    26    82    45     5     0     0     0
20180611     2    7    34   137   317   341   410   179    48    10     1     0
20180617     2    6    13    52   130   133   161    74    23     4     0     0
20180625     0    2     1     9    14    34    47    53     9     0     0     0
20180626     5    1     1     5    18    50    72   101    28     2     0     0
20180628     2    0     0     2    21    41    87    78    16     0     0     0
20180705     1    1     0     2    18    32    63    61    27     7     0     0
20180709     2    0     3     6    31    56   107   139    52    12     1     0

这是要绘制的代码。如您所见,我将select_bins数据帧转置为

代码语言:javascript
运行
AI代码解释
复制
ax = sns.lineplot(data = select_bins.T, dashes=False, palette = 'rocket')
plt.show()
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-01-07 11:23:21

您可以对数据进行分组并指定单独的调色板:

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

select_bins = pd.read_csv("test.txt", sep="\s{2,}", engine="python", index_col="date")

#identify unique peaks
col_bin = select_bins.idxmax(axis=1)
unique_val = np.unique(col_bin)

#provide information for palettes
palettes = ["Reds", "Blues", "Greys"]

fig, ax = plt.subplots()

#plot subgroups with their palettes, providing still individual colors within the palette for each line
for uv, pal in zip (unique_val, palettes):
    sns.lineplot(data = select_bins[col_bin==uv].T, dashes=False, palette = pal, ax=ax)

plt.show()

示例输出:

或者,您可以对组使用不同的线条样式,但为此,您必须首先从wide to long form对数据进行整形。既然我们必须将日期转换为字符串,为什么不将x值转换为数字,以获得更逼真的曲线表示呢?

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

select_bins = pd.read_csv("test.txt", sep="\s{2,}", engine="python", index_col="date")
#identify columns to plot
cols=select_bins.columns
#identify peaks
select_bins["col_bin"] = select_bins.idxmax(axis=1)

#reshape data for plotting
plot_df = select_bins.reset_index().melt(id_vars=["date", "col_bin"], value_vars=cols)
plot_df = plot_df.astype({"date": str, "variable": float})

fig, ax = plt.subplots(figsize=(10, 6))
sns.lineplot(data = plot_df, x="variable", y="value", hue="date", style="col_bin", palette = "rocket", ax=ax)
plt.xticks(ticks=[float(x) for x in cols], labels=cols)

plt.show()

示例输出:

票数 1
EN

Stack Overflow用户

发布于 2021-01-07 10:38:23

如果在数据框中创建其他变量,请为每行的峰值[1,2,3]编码一个值,然后将其设置为hue

代码语言:javascript
运行
AI代码解释
复制
sns.lineplot(data = select_bins.T, dashes=False, palette = 'rocket', hue="peak_encoding")
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65610611

复制
相关文章
Python中一个for循环循环多个变量
首先,熟悉一个函数zip,如下是使用help(zip)对zip的解释。 Help on built-in function zip in module __builtin__: zip(...)     zip(seq1 [, seq2 [...]]) -> [(seq1[0], seq2[0] ...), (...)]     Return a list of tuples, where each tuple contains the i-th element     from each of the argument sequences.  The returned list is truncated
卡尔曼和玻尔兹曼谁曼
2019/01/22
5.1K0
ios开发-Storyboard在多个viewcontroller之间导航的实现
IOS SDK6/Xcode4.5开始在Storyboad中新增很多功能对可视化的开发页面布局,导航更加方便,下面就写一下各种导航的实现。 1、不用像Xcode4之前必须删除默认的viewcontro
阿新
2018/04/12
1.8K0
ios开发-Storyboard在多个viewcontroller之间导航的实现
一个AI玩遍多个游戏
在以前,我曾经介绍过很多在游戏圈比较出名的AI智能体。这些AI智能体往往能在MOBA类游戏和即时战略游戏中超越专业选手,例如腾讯在王者荣耀训练出来的“绝悟AI”:
算法一只狗
2022/11/04
6550
iOS 在TabViewController中的一个ViewController跳转到另一种ViewController
http://stackoverflow.com/questions/10307350/any-code-example-of-how-access-viewcontroller-from-uitabbarcontroller
全栈程序员站长
2022/07/18
4150
Django中一个项目使用多个数据库
在django项目中, 一个工程中存在多个APP应用很常见. 有时候希望不同的APP连接不同的数据库,这个时候需要建立多个数据库连接。
人生不如戏
2018/12/05
4.2K0
ViewController官方文档
UIWindow *window = [[UIWindow alloc] initWithFrame:[UIScreen mainscreen] bounds]; levelViewController = [[LevelViewController alloc] init]; window.rootViewController = levelViewController; [window makekeyAndVisible];
nimomeng
2019/02/25
3.2K0
条码打印软件中一个对象如何连接多个数据源
有时用条码打印软件制作标签或者条码二维码的时候,需要在一个条形码或者文本对象连接两个数据源甚至多个数据源的数据,实现这种功能在条码打印软件中也是非常简单的,接下来我们简单了解下。小编做了三个Excel表测试数据。
中琅软件
2019/06/25
8920
Swift 动态创建ViewController
class ViewControllerHelper: NSObject { /// 通过ClassName动态创建ViewController /// - Parameter className: calssName /// - Returns: ViewController class func getViewControllerWithCalssName(_ className: String) -> UIViewController {
赵哥窟
2020/07/28
1.8K0
如何在 Linux 中一次重命名多个文件
你可能已经知道,我们使用 mv 命令在类 Unix 操作系统中重命名或者移动文件和目录。 但是,mv 命令不支持一次重命名多个文件。 不用担心。 在本教程中,我们将学习使用 Linux 中的 mmv 命令一次重命名多个文件。 此命令用于在类 Unix 操作系统中使用标准通配符批量移动、复制、追加和重命名文件。
用户8639654
2021/10/25
2.1K0
ios开发-载入viewcontroller的几种方式
Assuming you have storyboard, go to storyboard and give your VC an identifier (inspector), then do: UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil]; UIViewController *vc = [storyboard instantiateViewControllerWithI
阿新
2018/04/12
6560
iOS ViewController生命周期
iOS 显示是 约束 -> 布局 -> 显示的过程,有时候你操作改变frame没有反应是因为还没有确定frame TestCode ---- // // ViewController.swift // TestXib // // Created by zhangyu on 2019/11/13. // Copyright © 2019 zy. All rights reserved. // import UIKit class ViewController: UIViewControlle
星宇大前端
2020/01/13
5660
【iOS 开发】ViewController 减负记录
最近在重构一个以前写的老项目,在尝试给之前的 ViewController 减负,尽量抽离代码到其他文件。 想记录一些东西,看看以后返回来再看能不能有更好的想法;而现在,可以作为一个检验当前代码是否需要优化的一个标准。
KyXu
2019/04/11
6670
cocos 🦑 🎮 开发游戏的利器 ⚔ :1️⃣ 创建游戏场景
新下载后是需要Editor中安装插件的(我最开始安装的时最新的版本,但是新建项目后没有Canvas,只有Scence。跟官网的一些例子不太一样。这里建议使用2.x的版本)
用户4793865
2023/01/12
5420
针对不同场景的Python合并多个Excel方法
在辰哥看来,技术能够减少繁琐工作带来的枯燥,技术+实际=方便。最近辰哥也是在弄excel文件的时候发现手动去整理有点繁琐枯燥,想着技术可以代替我去处理这部分繁琐的工作那何乐而不为呢~~~
Python研究者
2021/08/13
2.3K0
针对不同场景的Python合并多个Excel方法
linux中一个tomcat的一个端口可以启动多个工程(工程名要不一样)
之前受一个端口只等启动一个工程的这种思维的影响,导致小编在想在服务器现有的tomcat上运行自己的工程时,发现此tomcat已经有一个工程了。于是乎就想算了,再加一个tomcat的吧。但是一番周折下来,下载的tomcat不能使用,可能是公司服务器的某些设置问题,所以所有的希望就在现有的这一个tomcat上。
全栈程序员站长
2022/06/30
5880
游戏开发如此简单?我直接创建了一个游戏场景【python 游戏实战 02】
本系列文章将会以通俗易懂的对话方式进行教学,对话中将涵盖了新手在学习中的一般问题。此系列将会持续更新,包括别的语言以及实战都将使用对话的方式进行教学,基础编程语言教学适用于零基础小白,之后实战课程也将会逐步更新。
1_bit
2022/01/06
6070
游戏开发如此简单?我直接创建了一个游戏场景【python 游戏实战 02】
C/C 中一次性执行多个DOS命令的实现思路
最近给公司的一个系统写了个启动的脚本,但是领导说批处理这样的脚本太low了,要使用EXE来启动,未来还要使用加密工具对EXE进行加密。
用户3519280
2023/07/06
2430
python中一次替换字符串中的多个字符[通俗易懂]
比如下面给出的字符串a,有字母、’(单引号)、\n(换行符)、数字、:(冒号)、,(逗号),目标是只保留字符串中的数字和字母,且看我如何操作。
全栈程序员站长
2022/06/26
3.9K0
python中一次替换字符串中的多个字符[通俗易懂]
记Python中一个编码的错误
字符串在进行unicode的时候,要使用什么编码格式进行转换呢?utf-8?gb2312?utf-16?这个时候就要根据 sys.getdefaultencoding()来确定了。而sys.getdefaultencoding()是ascii编码,在ascii字符表中不存在0xe5这种大于128的字符存在。所以当然会报错。
魔王卷子
2019/05/31
4200
Godot3游戏引擎入门之二:第一个简单的游戏场景
2018-09-11 by Liuqingwen | Tags: Godot | Hits
IT自学不成才
2019/01/08
1.2K0

相似问题

将一个ViewController用于多个场景

21

从viewcontroller检测场景

20

呈现带有场景的ViewController

11

斯威夫特:如何在游戏场景中调用ViewController制作的广告

00

用于游戏场景的多个JFrames

15
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

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

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文