質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

89.53%

ValueError: too many values to unpack

解決済

回答 2

投稿

  • 評価
  • クリップ 0
  • VIEW 3,445
退会済みユーザー

退会済みユーザー

ValueError: too many values to unpack のエラーが出ました。

# coding: utf-8

from __future__ import absolute_import
from __future__ import division
from __future__ import print_function

import os

import numpy as np
import numpy.random as random
import matplotlib.pyplot as plt

x = np.linspace(0,np.pi*2,10)
plt.title('Sin curve')
plt.plot(x,np.sin(x),c='navy',marker='*',label='sin')
plt.plot(x,np.sin(-x),c='#9400D3',linestyle='-',label='-sin')
plt.plot(x,np.cos(x),c=(1.0,0.5,0.0),label='cos')
plt.xlabel('x value')
plt.xlabel('y value',size=15)
plt.xlim((0,2*np.pi,5))
plt.xticks(np.linspace(0,2*np.pi,5),['0','pi/2','pi','3 pi/2','2pi'])
plt.legend(loc='upper right',shadow=True)
plt.show()


と書いたコードを実行すると

Traceback (most recent call last):
  File "test6.py", line 20, in <module>
    plt.xlim((0,2*np.pi,5))
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/matplotlib/pyplot.py", line 1453, in xlim
    ret = ax.set_xlim(*args, **kwargs)
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/matplotlib/axes.py", line 2519, in set_xlim
    left, right = left
ValueError: too many values to unpack


とエラーが出ました。
お手本のコードを写経したので
なぜこのエラーが出たのかわかりません。
このコードでxlim でx軸の表示範囲は指定したのに、
y軸の表示範囲であるylimは指定していないのでそれのエラーなのでしょうか?

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 過去に投稿した質問と同じ内容の質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 2

checkベストアンサー

+2

()が多いです。
plt.xlim((0,2*np.pi,5))ではなくplt.xlim(0,2*np.pi,5)です。
もしかしたらエディタのおせっかい(入力補完)で()が勝手についたのでしょう。

2017/04/27 18:29追記:以上3行を以下1行のように訂正します(頭丸めてきます) 

plt.xlim((0,2*np.pi))またはplt.xlim(0,2*np.pi)の打ち間違いでしょう。

気を抜かずに写経しましょう。

参考:写経の心得

文字ひとつひとつを仏さまと思ってていねいに書きます。
間違えがないかよく確認します。 よければ、最後に合掌をしましょう。

投稿

編集

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

0

エラーは

plt.xlim((0,2*np.pi,5))


の行です。
xlim() はX座標の (始点,終点) の2値のタプルを引数で渡すのですが、
(0, 2*np.pi, 5)
と3つの数値(のタプル)を渡しているためエラーとなっているようです。

投稿

編集

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 89.53%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる