小编Hug*_*ugh的帖子

在 matplotlib 散点图中标记点

编辑:这个问题不是重复的,我不想绘制数字而不是点,我想在我的点旁边绘制数字。

我正在使用 matplotlib 绘制一个图。需要绘制三个点 [[3,9],[4,8],[5,4]]

我可以轻松地用它们制作散点图

import matplotlib.pyplot as plt

allPoints = [[3,9],[4,8],[5,4]]

f, diagram = plt.subplots(1)

for i in range(3):
    xPoint =  allPoints[i][0]
    yPoint =  allPoints[i][1]
    diagram.plot(xPoint, yPoint, 'bo')
Run Code Online (Sandbox Code Playgroud)

这产生了这个情节:

阴谋

我想用数字 1,2,3 标记每个点。

基于这个SO 答案,我尝试使用 annotate 来标记每个点。

import matplotlib.pyplot as plt

allPoints = [[1,3,9],[2,4,8],[3,5,4]]

f, diagram = plt.subplots(1)

for i in range(3):
    pointRefNumber = allPoints[i][0]
    xPoint =  allPoints[i][1]
    yPoint =  allPoints[i][2]
    diagram.annotate(pointRefNumber, (xPoint, yPoint))
Run Code Online (Sandbox Code Playgroud)

这会产生一个空白图。我正在密切关注另一个答案,但它没有产生任何情节。我哪里做错了?

python plot matplotlib

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

读取文件,存储在数组中,错误:"运算符"不匹配

我有一个文件weights01.txt,它填充了4x3矩阵中的浮点数,如下所示

1.1 2.123 3.4
4.5 5 6.5
7 8.1 9
1 2 3.1
Run Code Online (Sandbox Code Playgroud)

我正在尝试读取此文件并将数据传输到名为newarray的数组.这是我正在使用的代码:

int main()
{
  ofstream myfile;
  float newarray[4][3];
  myfile.open ("weights01.txt");
    for(int i = 0 ; i < 4; i++)   // row loop
    {
        for(int j = 0 ; j < 3; j++)  // column loop
        {
            myfile >> newarray[i][j]; // store data in matrix
        }
    }
  myfile.close();
  return 0;
}
Run Code Online (Sandbox Code Playgroud)

我的线路出错了

myfile >> newarray[i][j];
Run Code Online (Sandbox Code Playgroud)

错误:'myfile >>中没有匹配'operator >>'newarray [i] [j]'

我不明白为什么会出现这个错误

我搜索了之前关于这个"不匹配'运算符>>'错误的问题,包括这个这个.我也读过这个关于重载运算符的长篇讨论,但我没有找到解释(可能是因为我之前没有使用过很多文件而且没有我真的关注正在发生的事情.

c++ file ofstream

0
推荐指数
1
解决办法
401
查看次数

c ++函数返回错误的数组

我正在尝试创建一个getSortedRanks返回数组的函数.我从这个问题中复制了返回数组的格式.函数返回数组但是数组没有正确返回.

#include <stdlib.h>
#include <stdio.h>
#define familyMembers 4

int *getSortedRanks()
{
    int rankedMembers[familyMembers] = {3,4,2,1};
    return rankedMembers;
}

int main()
{
    int *sortedRanks = getSortedRanks();

    //print the returned array
    for(int i = 0; i < familyMembers; i ++)
    {
        cout << "ranked member is " << sortedRanks[i] << endl;
    }

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

当我运行它时,输出是:

ranked member is 3
ranked member is 0
ranked member is 0
ranked member is 2686744
Run Code Online (Sandbox Code Playgroud)

数组的第一个元素sortedRanks总是正确的,但其他元素则不正确.如何更正返回数组的方式?

c++ arrays pointers function

0
推荐指数
1
解决办法
65
查看次数

标签 统计

c++ ×2

arrays ×1

file ×1

function ×1

matplotlib ×1

ofstream ×1

plot ×1

pointers ×1

python ×1