python - 绘制具有相同颜色的多条线,但使用色调来分隔线
问题描述
我有这些数据,我想为每个 Obs 的 Age vs Predicted Probability 绘制一条线。
Age Predicted Probability Obs
18.0 0.206 3.0
15.0 0.206 3.0
34.0 0.154 3.0
52.0 0.124 3.0
46.0 0.146 3.0
18.0 0.000 2.0
15.0 0.000 2.0
34.0 0.000 2.0
52.0 0.098 2.0
46.0 0.002 2.0
18.0 0.000 1.0
15.0 0.000 1.0
34.0 0.004 1.0
52.0 0.078 1.0
46.0 0.006 1.0
18.0 0.038 0.0
15.0 0.032 0.0
34.0 0.384 0.0
52.0 0.318 0.0
46.0 0.348 0.0
我通过seaborn中的以下代码做到了这一点:
sns.lineplot(data=df, x="Age", y="Predicted Probability", hue = 'Obs')
使用色调参数。但我不希望每条线都有不同的颜色。事实上,我希望每个 Obs 都有一条黑线。我怎样才能做到这一点?
解决方案
您可以通过色调或破折号更改线条的外观
- 色调颜色取决于 color_palette
您可以seaborn.set_palette
在绘图之前使用来设置自定义或任何预定义的调色板,当您在同一个绘图上绘制不同的数据时可以使用这些调色板。可以从 seaborn doc 中查看更多示例和信息,
您可以在文档中找到首选颜色,或者可以定义
用于传递给 set_palette 的调色板 seaborn.color_palette 对象。
# Create an array with the colors you want to use
colors = ["#FF0B04", "#4374B3"]# Set your custom color palette
sns.set_palette(sns.color_palette(colors))
#plot anything with hue ...first color takes category and so on
sns.lineplot(data=df, x="Age", y="Predicted Probability", hue = 'Obs')
对你也有帮助如何在 Seaborn 中使用自己的调色板 作者:Carolina Bento 2019 年 8 月 22 日·3 分钟阅读
- 你也可以使用破折号
如果你不喜欢使用hue ,你也可以在 lineplot 函数中尝试这个dashes属性:
破折号:布尔值、列表或字典
确定如何为样式变量的不同级别绘制线条的对象。设置为 True 将使用默认破折号,或者您可以将破折号列表或样式变量的字典映射级别传递给破折号。设置为 False 将对所有子集使用实线。破折号在 matplotlib 中指定:(段,间隙)长度的元组,或用于绘制实线的空字符串。
sns.lineplot(x="Age", y="Predicted Probability",style='Obs',dashes=[(1,1),(5, 10)],data=df)
推荐阅读
- ios - 更新到 Xcode 11 和 swift 5 后,IOS Swift 状态栏和导航栏奇怪的空间顶部
- javascript - 使用钩子从子组件访问道具/属性
- ios - 应用程序在 Xcode 11 上启动后立即崩溃
- c# - ASP.NET CSHTML 填充 Gridview
- java - 如何从静态工厂方法绑定静态嵌套类的泛型类型?
- java - java - 如何使用Java Spring仅在浏览器的一部分中显示pdf文件?
- android - Android 模拟器无法在 Windows 10 中启动,退出代码为 -805306369
- php - 如何将付款存储到数据库中的多个表中
- nginx - 双代理的 Nginx Websocket 配置
- python - Python,解析30MB文件时遇到内存错误(已经下载到我的本地计算机中)