python - Seaborn 线图对数刻度
问题描述
我在向绘图中添加对数 X 轴时遇到问题。我想根据样本大小使用方法A
和显示B
结果C
。
我的数据框:
A B C
15 0.733333 0.613333 0.733333
30 0.716667 0.693333 0.766667
59 0.733684 0.678485 0.745763
118 0.796667 0.726087 0.779661
236 0.817862 0.788333 0.838983
470 0.832125 0.814468 0.836170
我想要做的工作:
sample_count = np.around(np.logspace(math.log10(15),math.log10(470),6))
sample_count = sample_count.astype(int)
sns.set_style('whitegrid')
g_results=sns.lineplot(data=results,dashes=0,markers=['o','o','o'])
g_results.set(xticks=sample_count)
g_results.set(xscale='log')
然而结果并不是我真正想要的,因为蜱虫已经完全消失了:
没有最后xscale
一行,它看起来像这样,这当然是线性比例,但这次带有正确的刻度:
我想要实现的是这样的:
感谢您对我的问题的帮助。
解决方案
首先将 x 轴的比例设置为对数,然后根据需要设置 xticks 和标签。
sns.set_style('whitegrid')
g_results=sns.lineplot(data=results,dashes=0,markers=['o','o','o'])
g_results.set(xscale='log')
g_results.set(xticks=sample_count)
g_results.set(xticklabels=sample_count)
这会给你这个结果:
请注意,我使用sample_count
的是对数刻度的定义:
sample_count = np.around(np.logspace(math.log10(15),math.log10(470),6))
推荐阅读
- reactjs - 如何通过get方法在每个输入字段中设置状态值
- azure - 将文件从远程桌面 (RDP) 复制到 Azure Blob 存储
- python-3.x - 烧瓶 | JINJA 2:在上下文中导入宏的 render_template_string()
- swift - 真的不知道如何设置功能以识别单元格是否被选中
- c - 获取鼠标按钮状态非阻塞linux
- sql - Laravel updateOrCreate on hasOne 具有不同值的关系
- python - 获取 pymongo.errors.CursorNotFound: cursor id "..." not found
- javascript - 为什么我的 Firestore 权限不起作用?
- python - 按键过滤字典
- python - 在 for 循环中递增计数器以对简单数组求和