জুপিটার নোটবুকের কোনও ফাইল থেকে আমি কীভাবে একটি চিত্র প্রদর্শন করতে পারি?


190

বায়োপাইথনের মডিউলটি দিয়ে আমি তৈরি কিছু জিনোম চার্টগুলি ইন্টারেক্টিভভাবে বিশ্লেষণ করার উপায় হিসাবে আমি আইপিথন নোটবুকটি ব্যবহার করতে চাই GenomeDiagrammatplotlibআইপিথন নোটবুকে গ্রাফগুলি ইনলাইন পেতে কীভাবে ব্যবহার করতে হবে সে সম্পর্কে বিস্তৃত নথিপত্র রয়েছে , জিনোমেডিয়াগ্রাম রিপোর্টল্যাব টুলকিট ব্যবহার করে যা আমি মনে করি না যে আইপিথনে ইনলাইন গ্রাফিংয়ের জন্য সমর্থিত।

তবে আমি ভাবছিলাম যে এর চারপাশের উপায় হ'ল কোনও প্লটে প্লট / জিনোম ডায়াগ্রাম লিখতে হবে এবং তারপরে চিত্রের ইনলাইনটি খুলতে হবে যার ফলস্বরূপ এরকম কিছু হবে:

gd_diagram.write("test.png", "PNG")
display(file="test.png")

তবে আমি কীভাবে এটি করব তা বুঝতে পারি না - বা এটি সম্ভব কিনা তা জানতে পারি know সুতরাং আইপিথনে চিত্রগুলি খোলা / প্রদর্শন করা যায় কিনা তা কি কেউ জানেন?

উত্তর:


333

এই পোস্টটির সৌজন্যে , আপনি নিম্নলিখিতগুলি করতে পারেন:

from IPython.display import Image
Image(filename='test.png') 

( অফিসিয়াল ডক্স )


এটি অভ্যন্তরীণ অ্যাক্সেস না করে পাবলিক এপিআই ব্যবহার করা আরও ভাল: from IPython.display import Image0.13 সাল থেকে কাজ করা উচিত।
tomyun

65
এটি কোনও লুপের ভিতরে থাকলে চিত্রটি প্রদর্শন করে না
মুওন

6
বেশিরভাগ লোকই DrMcCleod এর উত্তর চাইবে।
আতুরস্যামস

3
এটি কেবলমাত্র আমার জন্য কাজ করে যদি আমি চিত্রের (ফাইলের নাম = 'test.png') প্রদর্শন করতে পাস করি, নীচের থ্রেডে প্রস্তাবিত হিসাবে: from IPython.core.display import Image, display</ b> display(Image(filename='test.png'))
জন স্ট্রং

1
আপনি যদি চিত্রটি স্লাইডগুলি উপস্থাপনা মোডে প্রদর্শন করতে চান (যা দিয়ে আপনি চালিত হন jupyter nbconvert mynotebook.ipynb --to slides --post serve) তবে চিত্রের পথটি এমনভাবে শুরু করা উচিত /যাতে এটি ওয়েব রুট থেকে পরম পথ, অর্থাৎ![alt text](/test.jpg "Some Title")
সিসিপিজ্জা

214

আপনি যদি কোনও লুপের অভ্যন্তরে কোনও চিত্র প্রদর্শন করার চেষ্টা করছেন, তবে আপনাকে প্রদর্শন পদ্ধতিতে চিত্র নির্মাণকারীকে মোড়ানো প্রয়োজন w

from IPython.display import Image, display

listOfImageNames = ['/path/to/images/1.png',
                    '/path/to/images/2.png']

for imageName in listOfImageNames:
    display(Image(filename=imageName))

1
কেন? (আমাকে বলবেন না অন্যথায় এটি কাজ করে না Please দয়া করে ব্যাখ্যা করুন কেন 'ডিসপ্লে' তে এই কলটি একটি লুপে প্রয়োজন তবে আপনি কেবল একটি চিত্র অপছন্দ করেন না)
ক্রিস

10
কারণ আইপিথন নোটবুকগুলি কেবলমাত্র কোনও ঘরেই শেষ রিটার্ন মানটি দেখায়, তাই যখনই আপনার একই কক্ষ থেকে দুটি আউটপুট থাকে তখন আপনাকে 'প্রদর্শন' পদ্ধতিটি ব্যবহার করতে হবে। আরও জানতে এই প্রশ্ন দেখুন।
DrMcCleod

1
আপনি আমার নায়ক - আমি এটি দু'দিন ধরে খুঁজছি।
ZaxR

1
এটা অসাধারণ. সময়ের সাথে সাথে কোনও চিত্র পরিবর্তন হওয়ার সাথে সাথে আমি কীভাবে পরবর্তী চিত্রটিকে অ্যানিমেটেড এফেক্টের মতো প্রতিস্থাপন করব?
blissweb

2
আমি ভাবছিলাম, আমরা কীভাবে ছবিগুলি টাইল করতে পারি? উদাহরণস্বরূপ চিত্রগুলির একটি 4x4 গ্রুপ দেখানো।
gmagno

31

দ্রষ্টব্য, এখন অবধি পোস্ট করা সমাধানগুলি কেবল png এবং jpg এর জন্য কাজ করে!

আপনি যদি আরও লাইব্রেরি আমদানি না করে আরও সহজ করতে চান বা আপনি আপনার আইপিথন নোটবুকে অ্যানিমেটেড বা অ্যানিমেটেড জিআইএফ ফাইলটি প্রদর্শন করতে চান। আপনি যেখানে লাইনটি মার্কডাউন করে প্রদর্শন করতে চান সেই লাইনটি রূপান্তর করুন এবং এই দুর্দান্ত শর্ট হ্যাকটি ব্যবহার করুন!

![alt text](test.gif "Title")

2
চিত্রটি জুপিটার নোটবুকের মতো একই ফোল্ডারে রাখুন বা "test.gif" এর পরিবর্তে "আপেক্ষিক / পথ / পরীক্ষা.gif" ব্যবহার করুন
ফিলিপ শোয়ার্জ

23

এটি .jpgজুপিটারে একটি চিত্র আমদানি এবং প্রদর্শন করবে (অ্যানাকোন্ডার পরিবেশে পাইথন ২.7 দিয়ে পরীক্ষা করা)

from IPython.display import display
from PIL import Image


path="/path/to/image.jpg"
display(Image.open(path))

আপনার পিআইএল ইনস্টল করার প্রয়োজন হতে পারে

অ্যানাকোন্ডায় এটি টাইপ করে সম্পন্ন হয়

conda install pillow

8

এই পৃষ্ঠার সৌজন্যে , আমি উপরের পরামর্শগুলি না পেরে এটি কাজ করেছিলাম:

import PIL.Image
from cStringIO import StringIO
import IPython.display
import numpy as np
def showarray(a, fmt='png'):
    a = np.uint8(a)
    f = StringIO()
    PIL.Image.fromarray(a).save(f, fmt)
    IPython.display.display(IPython.display.Image(data=f.getvalue()))

4

আপনি মার্কডাউন বিভাগে এইচটিএমএল কোড ব্যবহার করতে পারেন: উদাহরণ:

 <img src="https://www.tensorflow.org/images/colab_logo_32px.png" />

2

একটি ক্লিনার পাইথন 3 সংস্করণ যা স্ট্যান্ডার্ড নিম্পি, ম্যাটপ্ল্লোব এবং পিআইএল ব্যবহার করে। URL থেকে খোলার জন্য উত্তরটি মার্জ করা।

import matplotlib.pyplot as plt
from PIL import Image
import numpy as np

pil_im = Image.open('image.png') #Take jpg + png
## Uncomment to open from URL
#import requests
#r = requests.get('https://www.vegvesen.no/public/webkamera/kamera?id=131206')
#pil_im = Image.open(BytesIO(r.content))
im_array = np.asarray(pil_im)
plt.imshow(im_array)
plt.show()

2

আপনি যদি দক্ষতার সাথে বৃহত সংখ্যক চিত্র প্রদর্শন করতে চান তবে আমি আইপিআইপ্লট প্যাকেজটি ব্যবহার করার পরামর্শ দিই

import ipyplot

ipyplot.plot_images(images_array, max_images=20, img_width=150)

এখানে চিত্র বর্ণনা লিখুন

সেই প্যাকেজে আরও কিছু কার্যকর ফাংশন রয়েছে যেখানে আপনি ইন্টারেক্টিভ ট্যাবে চিত্রগুলি প্রদর্শন করতে পারেন (প্রতিটি লেবেল / শ্রেণীর জন্য পৃথক ট্যাব) যা সমস্ত এমএল শ্রেণিবদ্ধকরণ কার্যের জন্য খুব সহায়ক।

এখানে চিত্র বর্ণনা লিখুন


0

GenomeDiagramJupyter (iPython) এর সাথে ব্যবহার করার সময় , চিত্রগুলি প্রদর্শনের সহজতম উপায় হ'ল জেনোমডিআগ্রামকে পিএনজি চিত্রে রূপান্তর করা। এটিকে আইপিথন.ডিসপ্লে ব্যবহার করে মোড়ানো যায়।

from Bio.Graphics import GenomeDiagram
from Bio.SeqFeature import SeqFeature, FeatureLocation
from IPython.display import display, Image
gd_diagram = GenomeDiagram.Diagram("Test diagram")
gd_track_for_features = gd_diagram.new_track(1, name="Annotated Features")
gd_feature_set = gd_track_for_features.new_set()
gd_feature_set.add_feature(SeqFeature(FeatureLocation(25, 75), strand=+1))
gd_diagram.draw(format="linear", orientation="landscape", pagesize='A4',
                fragments=1, start=0, end=100)
Image(gd_diagram.write_to_string("PNG"))

[নোটবুক দেখুন]

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.