我仍在使用python,所以如果这是一个非常简单的问题,请道歉。
我有一个包含5列的输出文件,如下所示:
Depth Data#1 Data#2 Data#3 Standard_deviation
这些列包含500个值,如果这有任何不同。
我想要做的只是简单地绘制数据#1,数据#2和数据#3(在x轴上)与深度(在y轴上)。我希望数据#1为蓝色,数据#2和数据#3为红色。
我想要的无花果是(14,6)。
我不希望在此处绘制包含标准偏差的列。如果它更简单,我可以简单地从输出中删除该列。
提前感谢您的帮助!
答案 0 :(得分:2)
几乎所有的matplotlib,我的方式,如果我不知道如何去做,就是只扫描Gallery找到一些看起来像类似于我想做的事情,然后改变那里的代码。
这个包含你想要的大部分内容:
http://matplotlib.org/examples/style_sheets/plot_fivethirtyeight.html
"""
This shows an example of the "fivethirtyeight" styling, which
tries to replicate the styles from FiveThirtyEight.com.
"""
from matplotlib import pyplot as plt
import numpy as np
x = np.linspace(0, 10)
with plt.style.context('fivethirtyeight'):
plt.plot(x, np.sin(x) + x + np.random.randn(50))
plt.plot(x, np.sin(x) + 0.5 * x + np.random.randn(50))
plt.plot(x, np.sin(x) + 2 * x + np.random.randn(50))
plt.show()
遗憾的是,它不需要额外的东西,但是您应该注意的部分是plt.plot(...)
可以多次调用以绘制多行。
然后就是应用这个的一个案例;
from matplotlib import pyplot
#Make some data
depth = range(500)
allData = zip(*[[x, 2*x, 3*x] for x in depth])
#Set out colours
colours = ["blue", "red", "red"]
for data, colour in zip(allData, colours):
pyplot.plot(depth, data, color=colour)
pyplot.show()
答案 1 :(得分:1)
由于问题只涉及绘图我假设您知道如何从文件中读取数据。至于你需要的是如下:
import matplotlib.pyplot as plt
#Create a figure with a certain size
plt.figure(figsize = (14, 6))
#Plot x versus y
plt.plot(data1, depth, color = "blue")
plt.plot(data2, depth, color = "red")
plt.plot(data3, depth, color = "red")
#Save the figure
plt.savefig("figure.png", dpi = 300, bbox_inches = "tight")
#Show the figure
plt.show()
bbox_inches = "tight"
中的选项savefig
会导致删除图中所有多余的白色边界。
答案 2 :(得分:1)
它的matplotlibs基础知识:
import pylab as pl
data = pl.loadtxt("myfile.txt")
pl.figure(figsize=(14,6))
pl.plot(data[:,1], data[:,0], "b")
pl.plot(data[:,2], data[:,0], "r")
pl.plot(data[:,3], data[:,0], "r")
pl.show()