plt.scatter y轴反向
时间: 2024-08-12 07:00:50 浏览: 55
在Matplotlib库中,如果你想要创建散点图(scatter plot),并且希望y轴的方向是反向的,即从高到低显示数据,你可以通过设置`xlim`和`ylim`范围以及`yticks`的`orientation`来实现。这里是一个示例:
```python
import matplotlib.pyplot as plt
# 假设x和y是你想要绘图的数据
x = [1, 2, 3, 4, 5]
y = [5, 4, 3, 2, 1] # 注意y值是从大到小排列的
plt.scatter(x, y)
# 设置y轴的限制范围,并将刻度方向改为从顶部到底部
plt.xlim(left=0, right=len(x))
plt.ylim(top=max(y), bottom=min(y)) # 高值在上,低值在下
plt.yticks(orient='vertical', direction='reverse') # 反转y轴刻度方向
plt.show()
```
相关问题
plt 画图原点在左上角
可以通过设置坐标轴的方向来改变 plt 画图原点的位置。可以使用 `plt.gca().invert_yaxis()` 来使原点位于左下角。具体代码如下:
```python
import matplotlib.pyplot as plt
# 生成一些样本数据
x = [1, 2, 3]
y = [4, 5, 6]
# 绘制散点图,并设置 x 轴和 y 轴的范围
plt.scatter(x, y)
plt.xlim(0, 4)
plt.ylim(0, 7)
# 将 y 轴反向
plt.gca().invert_yaxis()
# 显示图像
plt.show()
```
这样,图像的原点就会位于左下角了。
但是实际的Y数据没有跟着变?
是的,你说得对。因为我们只是修改了坐标轴的范围,而没有修改数据的值,所以 Y 数据没有跟着变。如果要将 Y 数据与坐标轴范围相对应,需要对 Y 数据进行转换。下面是一个例子:
```python
import matplotlib.pyplot as plt
# 生成一些样本数据
x = [1, 2, 3]
y = [4, 5, 6]
# 计算 y 数据相对于新坐标轴范围的值
new_y = [max(y) - i for i in y]
# 绘制散点图,并设置 x 轴和 y 轴的范围
plt.scatter(x, new_y)
plt.xlim(0, max(x)*1.2)
plt.ylim(max(y)*1.2, 0)
# 将 y 轴反向
plt.gca().invert_yaxis()
# 显示图像
plt.show()
```
在这个例子中,我们先计算了 Y 数据相对于新坐标轴范围的值(即将最大值作为新坐标轴的0点,然后用最大值减去每个数据点的值),然后绘制了散点图。由于我们将 Y 轴反向,所以需要使用 `plt.gca().invert_yaxis()` 将 Y 轴反向。最后,我们显示了图像。
这样,图像的原点就会位于左上角,并且 Y 数据也跟着变化了。
阅读全文