我正在寻找一种在matplotlib中使用fill_between来遮蔽x1和x2而不是y1和y2的方法.
我有一系列的对数图,在Y轴上有深度,在x轴上有测量变量,并且想要绘制线的左侧或右侧,而不是上方或下方.
我确信这应该可以使用fill_between但不能使它工作.
举个例子:
import numpy as np
import matplotlib.pyplot as plt
import matplotlib.gridspec as gridspec
gs = gridspec.GridSpec(3, 3)
ax1 = plt.subplot(gs[0, :])
ax2 = plt.subplot(gs[1:, 1])
y=np.random.uniform(0,1,30)
x=np.arange(30)
ax1.set_ylabel('Plot 1')
ax1.plot(x,y)
ax1.fill_between(x,y,0.5,where=y>0.5,interpolate=True)
ax2.set_ylabel('Plot 2')
ax2.plot(y,x)
ax2.set_ylim(30,0)
plt.show()
Run Code Online (Sandbox Code Playgroud)
我附上了这个产生的图像:基本上我想在情节2位置绘制类似情节1的东西
谢谢你的任何建议
我有一堆带有两组数据的交叉图,并且一直在寻找一种matploltib方法,用平滑的多边形轮廓突出显示它们的绘图区域.
目前我只使用Adobe Illustrator并修改已保存的情节,但这并不理想.例:
我很感激任何指针/链接到示例.
干杯
我是一名地质学家,有一堆不同深度的钻孔.
我粗略地设定了子图的数量,宽度和高度,以根据钻孔的数量和这些钻孔中的样本数量而变化.
在每个钻孔中都有一个我想要突出显示的区域,我用axhspan完成了这个区域.
我想做的是在钻孔(子图)之间进行关联,绘制一条连接所有钻孔区域顶部和底部的线.
我尝试过使用注释但没有取得很大进展.我不确定如何处理这个问题,并且不胜感激.
这是一些示例代码,以及它可能产生的图片
import numpy as np
import matplotlib.pyplot as plt
from random import randint
fig = plt.figure()
Wells=np.arange(0,10,1) #number of wells to plot
for i in Wells:
samp=randint(50,100) #number of samples in well
dist=0.02 #space between plots
left=0.05 #left border
right=0.05 #right border
base=0.05 #bottom border
width=((1.0-(left+right))/len(Wells)) #width of subplot
height=(1.0-base)/(100.0/samp) #height of subplot
#create subplots
ax = fig.add_axes([left+(i*width)+dist, 1.0-(base+height), width-dist, height]) #left,bottom,width,height of subplot
#random data
x=np.random.random_integers(100,size=(samp))
y=np.arange(0,len(x),1)
#plot
ax.plot(x,y,alpha=0.5)
#zone area of plot
zone=samp/2.5 …
Run Code Online (Sandbox Code Playgroud) 如何在matplotlib中更改y轴上方sci表示法的大小?
下面是四个子图的基本代码和图像,我无法弄清楚如何减小y轴上方的sci幂表示法的大小.
我们欢迎所有的建议
import matplotlib.pyplot as plt
import numpy as np
def plot():
#plot data
ax.plot(np.arange(0,10000,100),np.arange(0,10000,100))
#set label style
ax.ticklabel_format(style='sci',axis='y')
ax.yaxis.major.formatter.set_powerlimits((0,0))
#format labels/ticks
ax.tick_params(axis='x',tick1On=True, tick2On=False, label1On=True,
label2On=False, labelsize=7,color='black')
ax.tick_params(axis='y', tick1On=True,tick2On=False, label1On=True,
label2On=False, labelsize=7,color='black')
fig = plt.figure()
ax = fig.add_subplot(2,2,1)
plot()
ax = fig.add_subplot(2,2,2)
plot()
ax = fig.add_subplot(2,2,3)
plot()
ax = fig.add_subplot(2,2,4)
plot()
plt.tight_layout()
fig.subplots_adjust(left=None, bottom=None, right=None, wspace=0.15, hspace=0.22)
plt.show()
Run Code Online (Sandbox Code Playgroud) 我有一个CSV数据集,40列乘800行.但举个例子可以说它看起来像这样:
Ref X Y
11 1 10
11 2 9
11 3 8
11 4 7
12 5 6
12 6 5
12 7 4
13 8 3
13 9 2
Run Code Online (Sandbox Code Playgroud)
您将如何定义一个函数,该函数返回每个Ref的平均X和Y值的列表?即产生如下:
Ref_list = [11,12,13]
Av_X = [2.5,6,12.5]
Run Code Online (Sandbox Code Playgroud)
我怀疑这是接近它的最佳方式,但我编写了以下代码:
my_data = genfromtxt('somedata.csv', delimiter=',',skiprows=1)
X=[]
for i in my_data:
X.append(i[0])
counter=collections.Counter(X)
keys=np.sort((counter.keys())) #find and sort ref key values
def getdata():
X , Y = [], []
for i in my_data:
if i[0] == refs:
X.append(i[1])
Y.append(i[2])
AV_X=np.average(X)
AV_Y=np.average(X)
return AV_X, AV_Y …
Run Code Online (Sandbox Code Playgroud) 我有一个相对简单的函数,有三个未知的输入参数,我只知道上限和下限.我也知道我的所有数据的输出Y应该是什么.
到目前为止,我已经在python中进行了简单的网格搜索,循环遍历所有可能的参数组合,并返回Y预测和Y观察到的误差在设定限制内的结果.
然后我查看结果以查看哪组参数对每组样本的效果最佳,查看参数之间的权衡,查看异常值如何影响数据等.
所以我真正的问题是 - 虽然我使用的网格搜索方法有点麻烦,但使用蒙特卡罗方法(例如大都市hastings)会有什么优势呢?
我目前正在研究MCMC方法,但没有任何使用它们的实际经验,在这种情况下,不能完全看到可能获得的东西.
我非常感谢任何意见或建议
非常感谢
我是python的新手,想做类似的事情:
if value x == any value in list y:
write x
Run Code Online (Sandbox Code Playgroud)
这将与函数一起运行,因此只有符合某个标准的解决方案才会在生成时写入csv
python ×7
matplotlib ×4
average ×1
counter ×1
fill ×1
font-size ×1
function ×1
if-statement ×1
montecarlo ×1
plot ×1
polygon ×1
polygons ×1
scatter-plot ×1