web-dev-qa-db-ja.com

ローカルマシンからでもWebリソースからでも、jupyterのノートに画像や写真を埋め込むにはどうすればいいですか?

私は木星のノートに画像を含めたいのですが。

私が以下をしたならば、それは働きます:

from IPython.display import Image
Image("img/picture.png")

しかし、画像をマークダウンセルに含めると、次のコードで404エラーが発生します。

![title]("img/picture.png")

私も試した

![texte]("http://localhost:8888/img/picture.png")

しかし、私はまだ同じエラーが出ます:

404 GET /notebooks/%22/home/user/folder/img/picture.png%22 (127.0.0.1) 2.74ms referer=http://localhost:8888/notebooks/notebook.ipynb
217
Ger

Markdownでは、画像ファイルの名前を引用符で囲まないでください。

エラーメッセージをよく読むと、リンクに%22という2つの部分があります。これは、HTMLエンコードされた引用符です。

行を変更する必要があります

![title]("img/picture.png")

![title](img/picture.png)

_アップデート_

以下のファイル構造があり、ファイルjupyter notebook(< - は画像のマークダウンを含む)が格納されているディレクトリでexample.ipynbコマンドを実行すると仮定します。

/
+-- example.ipynb
+-- img
    +-- picture.png
221

Jupyterノートブックに画像を投稿する方法はいくつかあります。

hTMLを介して:

from IPython.display import Image
from IPython.core.display import HTML 
Image(url= "http://my_site.com/my_picture.jpg")

HTMLタグを使用してサイズ変更などをすることができます。

Image(url= "http://my_site.com/my_picture.jpg", width=100, height=100)

相対パスまたは絶対パスを使用して、ローカルに保存されている画像を表示することもできます。

PATH = "/Users/reblochonMasque/Documents/Drawings/"
Image(filename = PATH + "My_picture.jpg", width=100, height=100)

画像が表示設定よりも幅が広い場合: ありがとう

画像の最大幅の制限を無効にするにはunconfined=Trueを使用してください

from IPython.core.display import Image, display
display(Image('https://i.ytimg.com/vi/j22DmsZEv30/maxresdefault.jpg', width=1900, unconfined=True))

または値下げを介して:

(セルがマークダウンセルであり、コードセルではないことを確認してください。コメントの@游凯超に感謝します)

ウェブ画像の場合:

![Image of Yaktocat](https://octodex.github.com/images/yaktocat.png)

@cristianmtrが示すように、これらの引用符""またはURLの前後にある''を使用しないように注意してください。

またはローカルのもの:

![title](img/picture.png)

@Sebastianによるデモ

158

あるいは、プレーンなHTMLの<img src>を使用することもできます。これにより、高さと幅を変更することができ、それでもマークダウンインタプリタによって読み取られます。

<img src="subdirectory/MyImage.png",width=60,height=60>
49
Alistair

ここで誰もHTMLセルマジックオプションについて言及していないことに驚きます。 docs から(IPython、Jupyterでも同じ)

%% html

Render the cell as a block of HTML
12
Malik A. Rumi

HTMLを使用した他の回答(Markdownまたは%%HTMLマジックの使用)に加えて、

画像の高さを指定する必要がある場合、これは機能しません。

<img src="image.png" height=50> <-- will not work

これは、JupyterのCSSスタイル設定がデフォルトでimgタグにheight: autoを使用するためです。これはHTMLのheight属性をオーバーライドします。代わりにCSSのheight属性を上書きする必要があります。

<img src="image.png" style="height:50px"> <-- works
10
Haffael

これがMarkdownを使ってできることです:

![Image of Yaktocat](https://octodex.github.com/images/yaktocat.png)
10
cristianmtr

もしあなたがJupyter Notebook API(そしてもうIPythonのものではない)を使いたいのなら、 ipywidgets Jupyterのサブプロジェクトを見つけます。あなたはImageウィジェットを持っています。 docstringのは、あなたがバイトでvalueパラメータを持っていることを指定します。だからあなたはできる:

import requests
from ipywidgets import Image

Image(value=requests.get('https://octodex.github.com/images/yaktocat.png').content)

私はそれがマークダウンスタイルを使用するように簡単です、同意するものとします。しかし、それはあなたの画像表示ノートブックAPIを示しています。またwidthheightパラメータで画像のサイズを変更することができます。

9
dag

これが Jupyter および Python3 の解決策です。

私はImageTestという名前のフォルダーに自分の画像をドロップしました。私のディレクトリは:

C:\Users\MyPcName\ImageTest\image.png

画像を表示するために、私はこの表現を使いました:

![title](/notebooks/ImageTest/image.png "ShowMyImage")

/および\にも注意してください。

6
BlindSide

これは完全には関係ないことを私は知っていますが、この答えは ' Jupyterで画像を表示する方法 'を検索するときに最初に何度もランクされるので、この答えも検討してください。

次のようにmatplotlibを使って画像を表示することができます。

import matplotlib.pyplot as plt
import matplotlib.image as mpimg
image = mpimg.imread("your_image.png")
plt.imshow(image)
plt.show()
5
Rohith R Nair

これは私にとっては値下げセルでうまくいきます。どういうわけか私はそれが画像か単純なファイルかどうかを特に言及する必要はありません。

![](files/picture.png)
4
Pranav Pandit

私が見つけた1つのことは、あなたのイメージのパスはノートブックが最初にロードされた場所に相対的でなければならないということです。 Picturesなどの別のディレクトリに移動した場合でも、Markdownパスは元のロードディレクトリからの相対パスです。

1
cybervigilante

Jupyterノートブックに画像を直接挿入します。

注:コンピューターに画像のローカルコピーが必要です

Jupyterノートブック自体に画像を挿入できます。この方法では、フォルダに画像を個別に保持する必要はありません。

手順:

  1. セルをmarkdownに変換するには:

    • 選択したセルでMを押す
      OR
    • メニューバーから、[セル]> [セルの種類]> [マークダウン]。
      注:セル​​をマークダウンに変換することが重要です。そうしないと、ステップ2の[画像の挿入]オプションがアクティブになりません)
  2. 次に、メニューバーに移動し、[編集]-> [画像の挿入]を選択します。

  3. ディスクから画像を選択してアップロードします。

  4. 押す Ctrl+Enter または Shift+Enter

これにより、ノートブックの一部として画像が作成され、ディレクトリまたはGithubにアップロードする必要はありません。これはよりきれいに見え、壊れたURLの問題を起こしにくいと思います。

0
Gaurav Modi