ในสมุดบันทึก Ipython / Jupyter Pandas ไม่แสดงกราฟที่ฉันพยายามจะลงจุด


104

ฉันกำลังพยายามพล็อตข้อมูลโดยใช้แพนด้าใน Ipython Notebook และในขณะที่มันให้วัตถุแก่ฉัน แต่มันก็ไม่ได้พล็อตกราฟเอง จึงมีลักษณะดังนี้:

In [7]:

pledge.Amount.plot()

Out[7]:

<matplotlib.axes.AxesSubplot at 0x9397c6c>

กราฟควรเป็นไปตามนั้น แต่ก็ไม่ปรากฏขึ้น ฉันได้นำเข้า matplotlib แล้วนั่นไม่ใช่ปัญหา มีโมดูลอื่นที่ฉันต้องนำเข้าหรือไม่?


ฉันสามารถพล็อตเรื่องต่างๆเมื่อสองวันก่อนในขณะที่ติดตามวิดีโอ แต่ตอนนี้ฉันไม่สามารถวางแผนอะไรได้เลย และดูเหมือนว่าฉันกำลังทำสิ่งเดียวกันกับเอกสาร pandas.pydata.org/pandas-docs/stable/visualization.htmlดังนั้นฉันคิดว่าระบบของฉันผิดพลาดหรือไม่ได้นำเข้าโมดูล
chrisfs

@chrisfs มีคำตอบที่ถูกต้องใหม่กว่า รายการที่คุณเลือกเมื่อสองสามปีก่อนไม่ถูกต้อง คุณจะพิจารณาเปลี่ยนคำตอบที่คุณยอมรับหรือไม่? ขอบคุณ.
tumultous_rooster

คำตอบ:


177

โปรดทราบว่า --pylab เลิกใช้งานแล้วและถูกลบออกจาก IPython บิวด์ที่ใหม่กว่าวิธีที่แนะนำในการเปิดใช้งานการพล็อตแบบอินไลน์ใน IPython Notebook ขณะนี้รัน:

%matplotlib inline
import matplotlib.pyplot as plt

ดูโพสต์นี้จากรายการส่งเมล ipython-dev สำหรับรายละเอียดเพิ่มเติม


2
ดีมาก. หลังจากใช้%matplotlib inlineความพยายามของฉันในการพล็อตทำให้ได้ภาพที่มองเห็นแบบอินไลน์ได้ดี ในความเป็นจริงการนำเข้าไม่จำเป็นหากพล็อตเป็นวิธีการของวัตถุที่มีอยู่แล้วเช่นใน OP
ม.ค. Vlcinsky

2
นี่คือคำตอบใหม่ที่ถูกต้อง ข้อมูลเพิ่มเติมในโพสต์บล็อกนี้
Scott Lowrey

@Tal Yarkoni ฉันเพิ่มบรรทัดแรกของคำตอบของคุณเพื่อให้มันได้ผล ขอบคุณ ~~!
verystrongjoe

ใช้กับแพนด้าในสมุดบันทึก Jupyter ด้วย
datalifenyc

เพื่อความสมบูรณ์%matplotlib nbaggวันนี้มีประโยชน์ในการรับเวอร์ชันโต้ตอบมากขึ้น
Frederick Nord

50

แก้ไข: เลิกใช้ Pylab แล้วโปรดดูคำตอบที่ยอมรับในปัจจุบัน

โอเคดูเหมือนว่าคำตอบคือเริ่มต้นโน้ตบุ๊ก ipython ด้วย --pylab = inline ดังนั้นสมุดบันทึก ipython --pylab = อินไลน์สิ่งนี้ทำให้สิ่งที่ฉันเห็นก่อนหน้านี้และสิ่งที่ฉันต้องการให้ทำ ขออภัยเกี่ยวกับคำถามเดิมที่คลุมเครือ


26
ใช่นั่นคือสิ่งที่คุณต้องการ คุณยังสามารถเรียกใช้%pylab inlineภายในโน้ตบุ๊กเพื่อเปิดใช้งานโหมดไพแล็บ
Thomas K

3
โปรดทราบว่าไม่จำเป็นต้องอยู่ในโหมดอินไลน์แม้ว่าแพนด้าจะทำงานได้ ฉันมีความสุขกับการใช้เพียงแค่ipython notebook --pylabแพนด้าเพื่อวางพล็อตในหน้าต่างพิเศษถ้านั่นคือสิ่งที่ใครบางคนต้องการ
K. -Michael Aye

26

กับคุณimport matplotlib.pyplot as pltเพียงแค่เพิ่ม

plt.show()

และจะแสดงแปลงที่เก็บไว้ทั้งหมด


1
ตกลงช่วยได้ ฉันคิดว่า Ipython จะทำการแปลงแบบอินไลน์โดยอัตโนมัติ เอกสารสำหรับแพนด้ายังไม่แสดงว่าต้องทำ plt.show () pandas.pydata.org/pandas-docs/stable/visualization.html
chrisfs

4

ง่าย ๆ หลังจากนำเข้า matplotlib คุณได้เรียกใช้เวทมนตร์หนึ่งครั้งหากคุณเริ่มต้น ipython เป็นแบบนี้

ipython notebook 

%matplotlib inline 

เรียกใช้คำสั่งนี้ทุกอย่างจะแสดงอย่างสมบูรณ์แบบ


1

เริ่มต้น ipython ด้วยipython notebook --pylab inlineจากนั้นกราฟจะแสดงแบบอินไลน์


ใช่นั่นเป็นคำตอบแรกสำหรับคำถามนี้ แต่ตอนนี้ดูเหมือนว่าจะเลิกใช้แล้ว
chrisfs


-5

สิ่งที่คุณต้องทำคือนำเข้า matplotlib

import matplotlib.pyplot as plt 

I have imported matplotlib
WoodChopper

อืมมันแปลก คุณใช้อะไร? ฉันใช้ iPython Notebook รหัสของฉันด้านล่าง data.plot (kind = 'barh', stacked = True)
ใจที่อยากรู้อยากเห็น

คำตอบนี้เป็นการทำซ้ำของคำตอบที่ยอมรับข้างต้น
chrisfs
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.