2017-06-23 4 views
-1

Ich versuche, ein 3D-Diagramm aus einem Array plotten. Ich erhalte jedoch einen Fehler. Was ist der Grund dafür und wie kann ich das überwinden?ValueError in Matplotlib

-Code

import matplotlib as mpl 
from mpl_toolkits.mplot3d import Axes3D 
import numpy as np 
import matplotlib.pyplot as plt 
mpl.rcParams['legend.fontsize'] = 10 
fig = plt.figure() 
ax = fig.gca(projection='3d') 
x=p[:, 0] 
y=p[:, 1], 
z=p[:, 2], 
ax.plot(x, y, z) 
ax.legend() 
plt.show() 

Fehler

Traceback (most recent call last): 

    File "<ipython-input-51-6e9ef1b4241b>", line 11, in <module> 
    ax.plot(x, y, z) 

    File "C:\Users\Ramdayal\Anaconda3\lib\site-packages\mpl_toolkits\mplot3d\axes3d.py", line 1537, in plot 
    lines = Axes.plot(self, xs, ys, *args[argsi:], **kwargs) 

    File "C:\Users\Ramdayal\Anaconda3\lib\site-packages\matplotlib\__init__.py", line 1897, in inner 
    return func(ax, *args, **kwargs) 

    File "C:\Users\Ramdayal\Anaconda3\lib\site-packages\matplotlib\axes\_axes.py", line 1406, in plot 
    for line in self._get_lines(*args, **kwargs): 

    File "C:\Users\Ramdayal\Anaconda3\lib\site-packages\matplotlib\axes\_base.py", line 407, in _grab_next_args 
    for seg in self._plot_args(remaining, kwargs): 

    File "C:\Users\Ramdayal\Anaconda3\lib\site-packages\matplotlib\axes\_base.py", line 360, in _plot_args 
    raise ValueError('third arg must be a format string') 

ValueError: third arg must be a format string 
+0

Was ist Ihre eigentliche Frage? Und was hast du bisher versucht? Der Wertfehler, den Sie erhalten, sollte ein guter Hinweis darauf sein, was schief läuft. –

+0

Fragen zur Fehlersuche ("** warum funktioniert dieser Code nicht? **") muss das gewünschte Verhalten, ein spezifisches Problem oder einen Fehler und den kürzesten Code enthalten , um es ** in der Frage selbst zu reproduzieren ** . Fragen ohne ein ** klares Problem Anweisung ** sind nicht nützlich für andere Leser. Siehe: [Erstellen eines minimalen, vollständigen und nachweisbaren Beispiels] (https://stackoverflow.com/help/mcve). –

+0

Ich bekomme ValueError: dritte Arg muss eine Formatzeichenfolge sein, wie kann ich lösen? – user8174493

Antwort

0

Sie definieren Ihre y und z als Tupel: y = something, in (something,) führen würde, während Sie wirklich ohne Komma haben y = something wollen.

x=p[:, 0] 
y=p[:, 1] #remove comma 
z=p[:, 2] #remove comma 
ax.plot(x, y, z)