- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我过去曾使用 python 根据文件中的数据对创建 2D XY 图,但现在我需要根据文件中的数据创建等高线图。该文件如下所示:
<Descriptive string>
<some "random" number>
<number of X values:nx>
<Number of Y values:ny>
X1 X2 X3 X4 X5
X6 X7 X8 X9 X10
...
... Xnx
Y1 Y2 Y3 Y4 Y5
Y6 Y7 Y8 Y9 Y10
...
... Yny
Z(X1,Y1) Z(X1,Y2) Z(X1,Y3) Z(X1,Y4) Z(X1,Y5)
Z(X1,Y6) Z(X1,Y7) Z(X1,Y8) Z(X1,Y9) Z(X1,Y10)
...
...
Z(X1,Yny) Z(X2,Y1) Z(X2,Y3) Z(X2,Y4) Z(X2,Y5)
...
...
Z(X2,Yny) ...
...
...
Z(Xnx,Yny)
到目前为止,我已经能够读取 X 和 Y 的值,尽管可能不是最方便的形式,甚至是 Z 的值,但我无法正确分配它们,以便 Z1 与 (X1, Y1)、Z2 与 (X1,Y2) 直至 Zny 与 (X1,Yny) 一起,最后 Znx*ny 与 (Xnx,Yny) 一起。希望这足够清楚......到目前为止,这是我的代码:
import numpy as np
# Read from .dat file:
with open("trans_acrolein_ResWVFunAP1R12.dat", "r") as f:
fl = f.readline()
xnum = f.readlines()[2]
ynum = f.readlines()[3]
# Initialize some variables to be lists.
xval = []
yval = []
# Read the values of the number of X and Y values.
for line in xnum:
px = line.split()
xval.append(int(px[0]))
for line in ynum:
py = line.split()
yval.append(int(py[0]))
linesx = np.ceil(xval/5.0)
linesy = np.ceil(yval/5.0)
linesz = np.ceil((xval*yval)/5.0)
with open("trans_acrolein_ResWVFunAP1R12.dat", "r") as f:
for line in f:
x = []
y = []
for element in line[4:3+linesx].split():
x.append(element)
for element in line[4+linesx:3+linesx+linesy].split():
y.append(element)
由于我不知道如何连续读取所有元素,所以我首先使用一种方法来计算具有 X 值的行数,然后是具有 Y 值的行数,最后是具有 Z 值的行数,但我猜它的效率不是很高。如果有人能帮助我,我将非常感激。谢谢,
最佳答案
我假设N_z_values = N_x_values * N_y_values
。如果每行上有相同数量的值,那么您应该能够一次解析包含行的所有数据,然后根据 N_x_values
将其拆分。
例如,如果 N_x_values = 27
和 N_y_values = 28
并且每行有 5 个值,那么您可以这样做
import numpy as np
data = []
N_x_values, N_y_values = 0, 0
with open(file_name, 'r') as in_file:
# skip 2 lines, grab N_X, grab N_Y
[in_file.next() for _ in range(2)]
N_x_values = int(in_file.next().strip())
N_y_values = int(in_file.next().strip())
for line in in_file:
line = line.strip().split(' ')
data.append(map(float, line))
data = np.array(data)
data = data.reshape(np.prod(data.shape))
x_cutoff = N_x_values
y_cutoff = N_y_values
x = data[:x_cutoff]
y = data[x_cutoff:y_cutoff]
z = data[y_cutoff:].reshape(N_x_values, N_y_values)
现在您的值位于以下形式的数组中
x.shape = (27, )
y.shape = (28, )
z.shape = (27, 28)
matplotlib.pyplot.contour
可以直接获取这些值。例如
import matplotlib.pyplot as plt
f = plt.figure()
ax = f.add_suplot(111)
ax.contourf(x, y, z)
ax.colorbar()
plt.show()
关于Python读取X和Y值并分配给Z特定的XY对,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17347922/
我正在尝试使用 (X,Y) 形式的 XY 点数组中的三个 XY 点找到最大面积。 我目前收到错误 called object type 'double' is not a function or fu
我在屏幕上设定的 XY 位置(例如 x=100,y=200)有一个点 (A),在屏幕上随机的 XY 位置(例如 x=50)有另一个点 (B) , y = 50)。 我想沿直线将点 B 移向点 A。 如
在我的项目中,每次打开 JSP 时我都必须分配一个变量。我用小脚本试过了 在 JSP 和 EL 中 ${}返回变量。 但是好像不行。 korrekteAntwort=${}后出现错误, 难道不
这个问题在这里已经有了答案: Bind and Destructure block arguments (3 个答案) 关闭 4 年前。 鉴于以下内容目前在 Ruby 中的工作方式类似于 Haske
#include int main(double x, double y, double x1, double y1, double x2, double y2) { // First co
我有一个函数可以根据任意数量的字典(每个字典代表图表上的一条线)生成 XY 散点图,每个字典都包含一个日期键和一个数值。到目前为止,这些值似乎在 Y 轴上有效,但日期轴 (X) 似乎已损坏。每次我从字
尝试绘制一个 xy 散点图,其中 z 值由 xy 点的颜色表示。 数据: 1.1, 32.27, 19.4 1.2, 21.34, 18 1.4, 47.45, 19.4 R代码: inp <-
我有以下代码: var favourites = JSON.parse(localStorage.getItem("favourites")); Service.all().then(function
我确实在对齐 rec 标签中的文本时遇到问题。遵循代码和两张描述案例的图片。 HTML: DACH 我确实想将文本左对齐到 rect-tag 的开头。附件是来自 Debug模式的图片,
我在 MATLAB 中有一个 x-y 散点图,想在每个点上放置一个数据标签。我似乎无法在文档中找到它。可能吗? 最佳答案 例子: p = rand(10,2); scatter(p(:,1), p(:
本文整理了Java中com.androidplot.xy.YValueMarker类的一些代码示例,展示了YValueMarker类的具体用法。这些代码示例主要来源于Github/Stackoverf
本文整理了Java中com.androidplot.xy.ZoomEstimator类的一些代码示例,展示了ZoomEstimator类的具体用法。这些代码示例主要来源于Github/Stackove
我花了很多时间寻找它,但找不到。如果这是一个基本问题,请不要轰炸我:) 我想用以下向量生成散点图 > x [1] "a" "b" "c" "d" > y [1] 5 6 3 4 我使用了 xyplot
这似乎微不足道 R问题,但我没有找到任何令人信服的解决方案。我想翻转 X 轴变为 Y 的图,反之亦然。在箱线图中有一个 horiz="T"选项,但不在 plot() 中. 这是我的情节: plot(r
This问题解释了如何在特定位置添加网格 点阵图(即相当于 两个 abline() 用于正常绘图)。我的问题是当 我尝试添加一个常规网格(相当于调用 grid() 对于正常情节)......情节的内容
我正在寻找创建 xy 图的 GWT api/示例。这是我在 powerpoint 中制作的示例图片。将有另外两个图,如下例所示,每个点都可以点击,然后在另一个图上突出显示。有没有办法在 GWT 中使用
我想将两个时间序列图表放置在彼此之上共享相同的时域轴,都具有多个数据集。 chart1 = ChartFactory.createTimeSeriesChart("", "", "", tsc1, t
我绘制了以下内容: t = data.frame(Sample=c('1','1','1','2','2','2'), X=c(12,13,14,12,11,15), Y=c(4,3,5,1,2,3)
我有一个 CAD 应用程序,我正在尝试为其构建插件,并且我需要能够选择直线和圆弧。我不能直接从应用程序中执行此操作。在我的代码中,我想开始用鼠标徒手绘制一个窗口矩形。通过 API,我可以确定刚刚绘制的
我想将 2 个变量的函数值显示为“位图”图像,例如 x+y。所以我尝试了这个,基于 http://gnuplot.sourceforge.net/demo/heatmaps.html : # Colo
我是一名优秀的程序员,十分优秀!