如果我在matplotlib中创建散点图,那么如何获取(或设置)之后点的坐标?我可以访问该集合的一些属性,但我无法找到如何获取这些点的坐标。
我可以得到;
import matplotlib.pyplot as plt
fig = plt.figure()
ax = fig.add_subplot(1,1,1)
x = [0,1,2,3]
y = [3,2,1,0]
ax.scatter(x,y)
ax.collections[0].properties()
列出了该集合的所有属性,但我不认为它们是坐标
答案 0 :(得分:8)
您可以通过首先将偏移设置为数据坐标然后返回偏移来从散点图中获取点的位置,即您绘制的原始数据。
这是一个基于你的例子:
import matplotlib.pyplot as plt
fig = plt.figure()
ax = fig.add_subplot(1,1,1)
x = [0,1,2,3]
y = [3,2,1,0]
ax.scatter(x,y)
d = ax.collections[0]
d.set_offset_position('data')
print d.get_offsets()
打印出来:
[[0 3]
[1 2]
[2 1]
[3 0]]
答案 1 :(得分:2)
由于 public static void main( String args[]){
final String dir2 = System.getProperty("user.name"); \\get user name
String path = "C:\\Users\\" + dir2;
digFile(new File(path)); \\ path is file start to dig
for (int i = 0; i < StringFile.size(); i++) {
System.out.println(StringFile.get(i));
}
}
private void digFile(File dir) {
FilenameFilter filter = new FilenameFilter() {
public boolean accept(File dir, String name) {
return name.endsWith(".mp4");
}
};
String[] children = dir.list(filter);
if (children == null) {
return;
} else {
for (int i = 0; i < children.length; i++) {
StringFile.add(dir+"\\"+children[i]);
}
}
File[] directories;
directories = dir.listFiles(new FileFilter() {
@Override
public boolean accept(File file) {
return file.isDirectory();
}
public boolean accept(File dir, String name) {
return !name.endsWith(".mp4");
}
});
if(directories!=null)
{
for (File directory : directories) {
digFile(directory);
}
}
}
在 Matplotlib 3.3(当前版本)中已弃用,这里是另一种方法:
set_offset_position
打印出来的:
import matplotlib.pyplot as plt
fig = plt.figure()
ax = fig.add_subplot(1, 1, 1)
x = [0, 1, 2, 3]
y = [3, 2, 1, 0]
points = ax.scatter(x, y)
print(points.get_offsets().data)