小编gsa*_*ica的帖子

如何在 matplotlib 中为 3D 散点图上的数据点着色

编辑:我设法弄清楚发生了什么。散点图有一个参数“线宽”(lw=n),它决定了散点图绘制点周围的线的粗细。因为我的绘图点的大小为 1 (s=1),所以线宽太粗了,实际上覆盖了绘图点的颜色。将线宽设置为 0 (lw=0) 的厚度应该可以解决问题。

我想生成数据点的 3d 散点图,根据它们的 y 坐标值对它们进行着色,但我无法使这些点实际着色。

如果数据点的值较低,则颜色应更接近色谱的蓝端。如果该值较高,则颜色应更接近光谱的红端。

我已经设法在 2D 中绘制了我想要的内容,但是在 3D 中复制该过程时遇到了麻烦。当前代码仅将点绘制为黑色。

这是我的 3D 尝试代码,以及 2D 中所需结果的屏幕截图。我到底做错了什么?

x_points、y_points 和 z_points 是浮点值列表。

import matplotlib.pyplot as plt
from matplotlib import cm
from mpl_toolkits.mplot3d import Axes3D

def three_dimensional_scatterplot(
    self, x_points, y_points, z_points, data_file
):

    cm1 = cm.get_cmap('gist_rainbow')

    fig = plt1.figure()
    ax = fig.add_subplot(111, projection='3d')
    ax.scatter(
        x_points,
        y_points,
        z_points,
        s=1,
        c=y_points,
        cmap=cm1
    )

    ax.set_xlabel('X axis')
    plt1.show()
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明

python 3d matplotlib mplot3d

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

如何使用Regex过滤掉PowerShell字符串中不需要的部分并替换?

我对PowerShell -replace运算符在使用正则表达式时的工作方式感到困惑.我在线查找文档,但找不到比基本用法更详细的内容:它查找字符串,并将该字符串替换为另一个字符串(如果已定义)或什么都没有.大.

我想和这个问题中的人做同样的事情,用户想从复杂的字符串中提取一个简单的程序名.这是我试图复制的代码:

 $string = '% O0033(SUB RAD MSD 50R III) G91G1X-6.4Z-2.F500 G3I6.4Z-8.G3I6.4 G3R3.2X6.4F500 G91G0Z5. G91G1X-10.4 G3I10.4 G3R5.2X10.4 G90G0Z2. M99 %'
 $program = $string -replace '^%\sO\d{4}\((.+?)\).+$','$1'
 $program

 SUB RAD MSD 50R III
Run Code Online (Sandbox Code Playgroud)

正如您所看到的,输出字符串是用户想要的字符串,其他所有字符串都被过滤掉了.对我来说,唯一的区别是我想要一个由六位数字组成的字符串,而不是别的.但是,当我尝试在我的正则表达式的字符串上执行此操作时,我得到了这个:

$string2 = '1_123456_1'
$program2 = $string -replace '(\d{6})','$1'
$program2

1_123456_1
Run Code Online (Sandbox Code Playgroud)

没有变化.为什么会这样?我的代码应该是什么?此外,$1代码中使用了什么?

regex string powershell

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

标签 统计

3d ×1

matplotlib ×1

mplot3d ×1

powershell ×1

python ×1

regex ×1

string ×1