小编Ian*_*rts的帖子

如何在Python matplotlib图中防止数字被改为指数形式

我在Python中使用Matplotlib来绘制简单的xy数据集.这会生成漂亮的图形,但是当我使用图形视图(执行时出现plt.show())在绘制图形的各个部分上"放大"太近时,x轴值从标准数字形式(1050,1060, 1070等)具有指数表示法的科学形式(例如1,1,5,2.0,其中x轴标记为+1.057e3).

我更喜欢我的数字保留轴的简单编号,而不是使用指数形式.有没有办法可以强制Matplotlib这样做?

python graph matplotlib figure

70
推荐指数
5
解决办法
6万
查看次数

用透明标记绘图但不透明边缘

我正在尝试使用具有固定颜色边缘的透明标记在matplotlib中制作绘图.但是,我似乎无法实现透明填充的标记.

我这里有一个最小的工作示例:

import numpy as np
import matplotlib.pyplot as plt

x = np.arange(10)
y1 = 2*x + 1
y2 = 3*x - 5

plt.plot(x,y1, 'o-', lw=6, ms=14)
plt.plot(x,y2, 'o', ms=14, markerfacecolor=None, alpha=0.5, markeredgecolor='red', markeredgewidth=5)

plt.show()
Run Code Online (Sandbox Code Playgroud)

我尝试了两种在线发现的技术来实现这一目的:1)设置alpha参数.然而,这使得标记边缘也是透明的,这不是期望的效果.2)设置markerfacecolor = None,虽然这对我的情节没有影响

请问有解决方案吗?

python plot transparency numpy matplotlib

33
推荐指数
2
解决办法
3万
查看次数

为由两个不同制度组成的数据拟合曲线

我正在寻找一种通过一些实验数据绘制曲线的方法.数据显示具有浅梯度的小线性区域,然后是阈值之后的陡峭线性区域.

我的数据在这里:http: //pastebin.com/H4NSbxqr
并在此处绘制

我可以相对容易地使用两条线来拟合数据,但我希望理想地使用连续线 - 这应该看起来像两条线,其中有一条平滑的曲线将它们连接在阈值附近(数据中约为5000,如上所示).

我试图使用scipy.optimize curve_fit并尝试一个包含直线和指数之和的函数:

y = a*x + b + c*np.exp((x-d)/e)
Run Code Online (Sandbox Code Playgroud)

尽管经过多次尝试,但它没有找到解决方案.

如果有人有任何建议,无论是选择配件分配/方法还是curve_fit实施,他们将不胜感激.

python numpy matplotlib curve-fitting scipy

12
推荐指数
2
解决办法
6711
查看次数

Pythonic方法将数据从多个文件导入数组

我对Python比较陌生,想知道如何最好地将多个文件中的数据导入到一个数组中.我有很多文本文件包含50行两列数据(列分隔),例如:

Length=10.txt:     
1, 10    
2, 30    
3, 50   
#etc
END OF FILE
Run Code Online (Sandbox Code Playgroud)

-

Length=20.txt
1, 50.7
2, 90.9
3, 10.3
#etc
END OF FILE
Run Code Online (Sandbox Code Playgroud)

假设我有10个文本文件要导入并导入到名为data的变量中.

我想创建一个包含所有数据的3D数组.这样,我可以通过引用数据来轻松地绘制和操作数据,data[:,:,n]其中where n指的是文本文件的索引.

我认为我这样做的方法是拥有一个形状数组(50,2,10),但不知道如何最好地使用python来创建它.我已经考虑过使用循环将每个文本文件导入为2D数组,然后将它们堆叠起来创建一个2D数组,尽管找不到合适的命令来执行此操作(我在numpy中查看了vstack和column_stack但是这些似乎没有添加额外的维度).

到目前为止,我已经编写了导入代码:

    file_list = glob.glob(source_dir + '/*.TXT') #Get folder path containing text files

    for file_path in file_list:
      data = np.genfromtxt(file_path, delimiter=',', skip_header=3, skip_footer=18)
Run Code Online (Sandbox Code Playgroud)

但是这段代码的问题在于我只能在for循环中处理数据.

我真正想要的是从文本文件导入的所有数据的数组.

非常感谢任何帮助!

python arrays import numpy file

10
推荐指数
1
解决办法
2万
查看次数

使用Python SciPy量化曲线拟合的质量

我正在使用Scipy CurveFit将高斯曲线拟合到数据中,并且有兴趣分析拟合的质量.我知道CurveFit返回一个有用的pcov矩阵,从中可以将参数popt [0]的每个拟合参数的标准偏差计算为sqrt(pcov [0,0]).

例如代码片段:

import numpy as np
from scipy.optimize import curve_fit

def gaussian(self, x, *p):
 A, sigma, mu, y_offset = p
return A*np.exp(-(x-mu)**2/(2.*sigma**2)) + y_offset

p0 = [1,2,3,4] #Initial guess of parameters
popt, pcov = curve_fit(gaussian, x,y, p0) #Return co-effs for fit and covariance

‘Parameter A is %f (%f uncertainty)’ % (popt[0], np.sqrt(pcov[0, 0]))
Run Code Online (Sandbox Code Playgroud)

这给出了拟合曲线方程中每个系数拟合参数的不确定性的指示,但我想知道如何最好地获得整体"拟合参数质量",以便我可以比较不同曲线方程之间的拟合质量(例如高斯,超高斯等)

在一个简单的层面上,我可以计算每个系数的不确定性百分比,然后平均,虽然我想知道是否有更好的方法?从在线搜索,以及特别有用的"适合度"维基百科页面,我注意到有很多措施来描述这一点.我想知道是否有人知道是否有任何内置到Python包/有任何一般建议的好方法来量化曲线拟合.

谢谢你的帮助!

python curve-fitting scipy least-squares

10
推荐指数
1
解决办法
3888
查看次数

Matplotlib 3D瀑布情节与彩色高度

我正在尝试使用Python和Matplotlib可视化3D中的数据集,该数据集包含xz数据的时间序列(沿y).

我想创建一个如下图所示的图(用Python制作:http://austringer.net/wp/index.php/2011/05/20/plotting-a-dolphin-biosonar-click-train /),但颜色随Z变化 - 即,为了清楚起见,强度由色图和峰高显示.

在此输入图像描述

显示Z中的色彩映射的示例(显然是使用MATLAB制作的): 在此输入图像描述

可以使用MATLAB中的瀑布绘图选项创建此效果,但我知道在Python中没有直接的等效.

我也尝试在Python(下面)中使用plot_surface选项,它工作正常,但我想"强制"在表面上运行的线只在x方向(即使它看起来更像堆叠时间系列比表面).这可能吗? 在此输入图像描述

任何帮助或建议都非常欢迎.谢谢.

python 3d matplotlib surface matplotlib.mlab

7
推荐指数
1
解决办法
4434
查看次数

多处理比 Windows 中的串行处理慢(但不是在 Linux 中)

我正在尝试并行化 afor loop以加速我的代码,因为循环处理操作都是独立的。按照在线教程,multiprocessingPython 中的标准库似乎是一个好的开始,我已经将它用于基本示例。

但是,对于我的实际用例,我发现在 Windows 上运行时,并行处理(使用双核机器)实际上要慢一点(<5%)。然而,与串行执行相比,在 Linux 上运行相同的代码会使并行处理速度提高约 25%。

从文档中,我认为这可能与 Window 缺少 fork() 函数有关,这意味着该进程每次都需要重新初始化。但是,我不完全理解这一点,想知道是否有人可以确认这一点?

特别,

--> 这是否意味着调用 python 文件中的所有代码都会为 Windows 上的每个并行进程运行,甚至初始化类和导入包?

--> 如果是这样,是否可以通过将类的副本(例如使用 deepcopy)传递给新进程来避免这种情况?

--> 是否有任何提示/其他策略可以有效地并行化 unix 和 windows 的代码设计。

我的确切代码很长并且使用了很多文件,所以我创建了一个伪代码样式的示例结构,希望能显示这个问题。

# Imports
from my_package import MyClass
imports many other packages / functions

# Initialization (instantiate class and call slow functions that get it ready for processing)
my_class = Class()
my_class.set_up(input1=1, input2=2)

# Define main processing function to be used in loop
def calculation(_input_data):
    # …
Run Code Online (Sandbox Code Playgroud)

python parallel-processing multithreading multiprocessing python-multiprocessing

7
推荐指数
1
解决办法
1236
查看次数

Matplotlib 波浪箭头

请问有什么方法可以在 matplotlib/python 中创建一个“波浪”箭头?

理想情况下,我想重新创建如下内容: 在此处输入图片说明

plot matplotlib

5
推荐指数
1
解决办法
3665
查看次数

根据数组和颜色映射着色matplotlib的背景

我想知道是否可以根据绘制的数据来遮蔽典型matplotlib图的背景.

为简单起见,我们说:

x=arange(1,5,0.01)
y=sin(x)
plot(x,y)
Run Code Online (Sandbox Code Playgroud)

那么可以根据y值遮蔽轴的背景吗?

可以通过将包含x和y的数组传递给imshow来实现着色,例如:

imshow(array, cmap='hot')
Run Code Online (Sandbox Code Playgroud)

虽然我希望在这个imshow数字的顶部有一个x和y的线图.

这可能吗?

python colors matplotlib

4
推荐指数
1
解决办法
1334
查看次数

类classname:AND class classname()之间的区别:AND class classname(object):

我正在学习python并向OOP介绍自己.但是,我正在努力理解如何最好地构建类,特别是,以下类定义之间的差异以及何时应该使用每个类:

class my_class:
  content...

class my_class():
  content...

class my_class(object):
  content...
Run Code Online (Sandbox Code Playgroud)

我一直在阅读非常有用的python在线帮助,虽然没有找到这个问题的具体答案.所以任何想法或推荐的参考将不胜感激,谢谢.

python oop class

4
推荐指数
1
解决办法
285
查看次数