Matplotlib 如何在中重新格式化图表的x轴

Matplotlib 如何在中重新格式化图表的x轴

问题描述

我在matplotlib中有一个简单的图表:

import numpy as np
import matplotlib.pyplot as plt

data = np.random.uniform(-3, 2, 100)
data = np.append(data, [-5, -10, -50, -55])


plt.scatter(range(104), data, marker='o', color='b', label='Data Points')

plt.savefig("example.png")

看起来像这样:

Matplotlib 如何在中重新格式化图表的x轴

你可以看到值-50和-55扭曲了整个图表。我想改变Y轴的线性,得到这个:

Matplotlib 如何在中重新格式化图表的x轴

换句话说,Y轴应该有0、-10、-30、-50、-100这样的非线性值。请问我该如何做?

解决方案

为了实现所需的Y轴格式,你可以将y刻度设置为 对数对称刻度 ,然后设置自定义刻度标签:

import numpy as np
import matplotlib.pyplot as plt

data = np.random.uniform(-3, 2, 100)
data = np.append(data, [-5, -10, -50, -55])

plt.scatter(range(104), data, marker='o', color='b', label='Data Points')
plt.yscale('symlog')

# Set custom y-tick labels
plt.yticks([0, -10, -30, -50, -100], ['0', '-10', '-30', '-50', '-100'])

plt.show()

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程