小编Ant*_*ier的帖子

在绘图上绘制括号

如果我想在我的情节的某些部分绘制括号,我将如何进行:

括号上的情节

目前我正在使用powerpoint添加它们,但我想完全在python中完成它.

谢谢你的帮助

python matplotlib

16
推荐指数
1
解决办法
5673
查看次数

Numpy.where 与值列表一起使用

我有一个二维和一维数组。我希望找到至少包含一次 1d 数组中的值的两行,如下所示:

import numpy as np

A = np.array([[0, 3, 1],
           [9, 4, 6],
           [2, 7, 3],
           [1, 8, 9],
           [6, 2, 7],
           [4, 8, 0]])

B = np.array([0,1,2,3])

results = []

for elem in B:
    results.append(np.where(A==elem)[0])
Run Code Online (Sandbox Code Playgroud)

这有效并产生以下数组:

[array([0, 5], dtype=int64),
 array([0, 3], dtype=int64),
 array([2, 4], dtype=int64),
 array([0, 2], dtype=int64)]
Run Code Online (Sandbox Code Playgroud)

但这可能不是最好的处理方式。根据这个问题(搜索具有多个值的 Numpy 数组)给出的答案,我尝试了以下解决方案:

out1 = np.where(np.in1d(A, B))

num_arr = np.sort(B)
idx = np.searchsorted(B, A)
idx[idx==len(num_arr)] = 0 
out2 = A[A == num_arr[idx]]
Run Code Online (Sandbox Code Playgroud)

但这些给了我不正确的值:

In [36]: out1
Out[36]: …
Run Code Online (Sandbox Code Playgroud)

python numpy

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

错误栏上的顶部和底部行与python和seaborn

我试图用python和seaborn绘制错误栏,但我对它们的外观并不完全满意.

默认的seaborn错误栏如下所示:

errobar默认风格

但我想在这样的误差条上添加底线和顶线(为了区分两个误差线,它是默认的matplotlib样式):

defaultmatplolib

我怎么能在seaborn中这样做?

这是代码:

import matplotlib.pyplot as plt
import seaborn as sns

fig1 = plt.figure(figsize=(20, 12))


x_values = [1,2,3,4]
y_values = [1,2,3,4]

y_error = [1,0.5,0.75,0.25]

plt.errorbar(x_values, y_values,  yerr=y_error ,fmt='o', markersize=8)

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

python matplotlib seaborn

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

df.loc导致SettingWithCopyWarning警告消息

我的代码的以下行导致警告:

import pandas as pd

s = pd.DataFrame(np.random.randint(0,100,size=(100, 4)), columns=list('ABCD'))
s.loc[-1] = [5,np.nan,np.nan,6]
grouped = s.groupby(['A'])
for key_m, group_m in grouped:
    group_m.loc[-1] = [10,np.nan,np.nan,10]

C:\Anaconda3\lib\site-packages\ipykernel\__main__.py:10: SettingWithCopyWarning: 
A value is trying to be set on a copy of a slice from a DataFrame
Run Code Online (Sandbox Code Playgroud)

根据文档,这是推荐的做法,所以发生了什么?

谢谢你的帮助.

python pandas chained-assignment

9
推荐指数
1
解决办法
1100
查看次数

使用pandas.DataFrame.interpolate将行添加到DataFrame

我有一个Pandas数据帧,格式如下:

    Frequency | Value
1   10          2.8
2   20          2.5
3   30          2.2
4   40          2.3
Run Code Online (Sandbox Code Playgroud)

我想使用pandas.DataFrame.interpolate以便在频率35处添加一条线,其值在频率30和40之间线性插值.

在用户手册中,该示例显示了如何替换Nan,而不是如何在其他人之间添加值(Pandas doc).

什么是最好的方法?

python pandas

6
推荐指数
1
解决办法
1771
查看次数

在绘图和轴之间填充Matplotlib

我正在尝试使用轴和实际绘图之间的一些填充来做matplolib图.

这是我的示例代码:

import numpy as np
import matplotlib.pyplot as plt

fig, ax = plt.subplots(1)

x = np.linspace(0, 1)
y = np.sin(4 * np.pi * x) * np.exp(-5 * x)

plt.plot(x, y, 'r')
plt.grid(True)


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

这就是我想要得到的:

带有x和y移位的情节

python plot matplotlib

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

从python中的VTK文件中检索构面和指向

我有一个包含3D模型的vtk文件,

我想提取点坐标和构面。

这是一个最小的工作示例:

import vtk
import numpy
from vtk.util.numpy_support import vtk_to_numpy

reader = vtk.vtkPolyDataReader()
reader.SetFileName('test.vtk')
reader.Update()

polydata = reader.GetOutput()

points = polydata.GetPoints()
array = points.GetData()
numpy_nodes = vtk_to_numpy(array)
Run Code Online (Sandbox Code Playgroud)

它的工作方式是numpy_nodes包含所有点的x,y,z坐标,但我不知所措,无法检索将该模型的各个方面与相应点相关联的列表。

我试过了:

facets= polydata.GetPolys()
array = facets.GetData()
numpy_nodes = vtk_to_numpy(array)
Run Code Online (Sandbox Code Playgroud)

但是,numpy_nodes这只是一个1D数组,我希望它是一个2D数组(大小为3 *刻面数),其中第一个维度包含指向该刻面的对应点数(如.ply文件中一样)。

任何有关如何进行的建议都将受到欢迎

python numpy vtk

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

标签 统计

python ×7

matplotlib ×3

numpy ×2

pandas ×2

chained-assignment ×1

plot ×1

seaborn ×1

vtk ×1