我需要从一组文件建立一个图表。我的脚本如下和输出。
import sys
import matplotlib.pyplot as plt
import matplotlib.image as img
import pandas as pd
import numpy as np
import glob
df=ReadMultPRYFiles(f"/data/beegfs/projects/XOMG2201-FLD/databases/orient/RL53744.00/RL*RP_15*")
# Define variables
X = df['x num']
Y = df['y num']
z = df['value']
# Plot the x, y, and z coordinates as a scatter plot with color representing z
plt.scatter(X, Y, c=z, cmap='rainbow', s=20, marker = 's',zorder=10)
# Y ticks frequency
plt.yticks(np.arange(min(Y), max(Y), 10))
# Add labels to the x and y axes
plt.xlabel('REC_X')
plt.ylabel('REC_Y')
# display
plt.show()
一切都很好,但我想看到的Y标签只有我实际上有价值,从15264至15808,没有插值或价值以外的范围。
2条答案
按热度按时间lf5gs5x21#
要使y刻度仅用于现有y值,您可以更改以下行
到
性能改进
上面的答案看起来效率有点低,我们只需要Y轴上的唯一值,所以下面的代码可以更有效地完成这个任务。
我们利用了NumPy而不是panda,并且我们只对唯一值执行排序/转换为列表
4jb9z9bj2#
正如JohanC所建议的那样,工作得又好又快。