คำถามติดแท็ก matplotlib

Matplotlib เป็นไลบรารีการพล็อตสำหรับ Python ซึ่งอาจใช้แบบโต้ตอบหรือฝังใน GUI แบบสแตนด์อะโลน อินเทอร์เฟซ "pyplot" ขนาดกะทัดรัดคล้ายกับฟังก์ชันการลงจุดของMATLAB®

8
พล็อตสีที่แตกต่างกันสำหรับระดับหมวดหมู่ต่างๆโดยใช้ matplotlib
ฉันมีกรอบข้อมูลนี้diamondsซึ่งประกอบด้วยตัวแปรเหมือน(carat, price, color)และผมต้องการที่จะดึงพล็อตกระจายpriceไปcaratสำหรับแต่ละcolorซึ่งหมายถึงการที่แตกต่างกันcolorจะมีสีที่แตกต่างกันในการวางแผน ทำได้ง่ายRด้วยggplot: ggplot(aes(x=carat, y=price, color=color), #by setting color=color, ggplot automatically draw in different colors data=diamonds) + geom_point(stat='summary', fun.y=median) ฉันสงสัยว่าจะทำได้อย่างไรใน Python โดยใช้matplotlib? PS: ฉันรู้เกี่ยวกับแพคเกจการวางแผนเสริมเช่นseabornและggplot for pythonและฉัน Donot ชอบพวกเขาเพียงแค่ต้องการที่จะหาถ้ามันเป็นไปได้ที่จะทำผลงานได้โดยใช้matplotlibเพียงอย่างเดียว; P

8
matplotlib ใช้เวลาในการนำเข้า
ฉันเพิ่งอัปเกรดเป็นเวอร์ชันเสถียรล่าสุดของmatplotlib(1.5.1) และทุกครั้งที่ฉันนำเข้า matplotlib ฉันได้รับข้อความนี้: /usr/local/lib/python2.7/dist-packages/matplotlib/font_manager.py:273: UserWarning: Matplotlib is building the font cache using fc-list. This may take a moment. warnings.warn('Matplotlib is building the font cache using fc-list. This may take a moment.') ... ซึ่งมักจะหยุดนิ่งไม่กี่วินาที นี่คือพฤติกรรมที่คาดหวังหรือไม่? เมื่อก่อนก็เหมือนกัน แต่ไม่มีข้อความที่พิมพ์ออกมา?
103 python  matplotlib 

1
การพล็อตด้วยทะเลโดยใช้อินเตอร์เฟสเชิงวัตถุ matplotlib
ฉันชอบใช้matplotlibในรูปแบบ OOP เป็นอย่างยิ่ง: f, axarr = plt.subplots(2, sharex=True) axarr[0].plot(...) axarr[1].plot(...) ทำให้ง่ายต่อการติดตามตัวเลขและพล็อตย่อยหลายรายการ คำถาม: วิธีการใช้ทะเลบอร์นด้วยวิธีนี้? หรือจะเปลี่ยนตัวอย่างนี้เป็นสไตล์ OOP ได้อย่างไร? วิธีการบอกseabornฟังก์ชั่นการวางแผนเช่นlmplotที่FigureหรือAxesแปลงมันไป?

3
อะไรคือความแตกต่างระหว่าง 'log' และ 'symlog'?
ในmatplotlibฉันสามารถตั้งค่าการปรับขนาดแกนโดยใช้pyplot.xscale()หรือAxes.set_xscale(). ฟังก์ชันทั้งสองยอมรับสเกลที่แตกต่างกันสามแบบ: 'linear'| 'log'| 'symlog'. อะไรคือความแตกต่างระหว่าง'log'และ'symlog'? ในการทดสอบง่ายๆที่ฉันทำทั้งสองดูเหมือนกันทุกประการ ฉันรู้ว่าเอกสารระบุว่าพวกเขายอมรับพารามิเตอร์ที่แตกต่างกัน แต่ฉันยังไม่เข้าใจความแตกต่างระหว่างพารามิเตอร์เหล่านี้ ใครช่วยอธิบายหน่อยได้ไหม คำตอบจะดีที่สุดหากมีโค้ดตัวอย่างและกราฟิก! (ด้วย: ชื่อ 'symlog' มาจากไหน?)

5
วิธีการลงจุดฮิสโตแกรมโดยใช้ Matplotlib ใน Python พร้อมรายการข้อมูล
ฉันกำลังพยายามพล็อตฮิสโตแกรมโดยใช้matplotlib.hist()ฟังก์ชัน แต่ไม่แน่ใจว่าจะทำอย่างไร ฉันมีรายชื่อ probability = [0.3602150537634409, 0.42028985507246375, 0.373117033603708, 0.36813186813186816, 0.32517482517482516, 0.4175257731958763, 0.41025641025641024, 0.39408866995073893, 0.4143222506393862, 0.34, 0.391025641025641, 0.3130841121495327, 0.35398230088495575] และรายชื่อ (สตริง) ฉันจะทำให้ความน่าจะเป็นเป็นค่า y ของแต่ละแท่งและชื่อเป็นค่า x ได้อย่างไร

5
เหตุใดการวางแผนด้วย Matplotlib จึงช้ามาก
ฉันกำลังประเมินไลบรารีพล็อต python ที่แตกต่างกัน ตอนนี้ฉันกำลังลอง matplotlib และฉันค่อนข้างผิดหวังกับการแสดง ตัวอย่างต่อไปนี้แก้ไขจากตัวอย่าง SciPyและให้ฉันเพียง ~ 8 เฟรมต่อวินาที! วิธีใดในการเร่งความเร็วนี้หรือฉันควรเลือกไลบรารีพล็อตอื่น from pylab import * import time ion() fig = figure() ax1 = fig.add_subplot(611) ax2 = fig.add_subplot(612) ax3 = fig.add_subplot(613) ax4 = fig.add_subplot(614) ax5 = fig.add_subplot(615) ax6 = fig.add_subplot(616) x = arange(0,2*pi,0.01) y = sin(x) line1, = ax1.plot(x, y, …
103 python  matplotlib 

1
เติมระหว่างเส้นแนวตั้งสองเส้นใน matplotlib
ฉันดูตัวอย่างในmatplotlibเอกสาร แต่ไม่ชัดเจนสำหรับฉันว่าฉันจะสร้างพล็อตที่เติมพื้นที่ระหว่างเส้นแนวตั้งสองเส้นได้อย่างไร ตัวอย่างเช่นสมมติว่าฉันต้องการสร้างพล็อตระหว่างx=0.2และx=4(สำหรับyช่วงเต็มของพล็อต) ฉันควรใช้fill_between, fillหรือfill_betweenx? ฉันสามารถใช้whereเงื่อนไขนี้ได้หรือไม่?
101 python  matplotlib 

2
อะไรคือความแตกต่างระหว่างการวาดพล็อตโดยใช้พล็อตแกนหรือรูปใน matplotlib?
ฉันสับสนว่าเกิดอะไรขึ้นที่แบ็กเอนด์เมื่อฉันวาดพล็อตใน matplotlib, tbh ฉันไม่ชัดเจนกับลำดับชั้นของพล็อตแกนและรูป ฉันอ่านเอกสารแล้วมันมีประโยชน์ แต่ฉันก็ยังสับสน ... โค้ดด้านล่างวาดพล็อตเดียวกันด้วยสามวิธีที่แตกต่างกัน - #creating the arrays for testing x = np.arange(1, 100) y = np.sqrt(x) #1st way plt.plot(x, y) #2nd way ax = plt.subplot() ax.plot(x, y) #3rd way figure = plt.figure() new_plot = figure.add_subplot(111) new_plot.plot(x, y) ตอนนี้คำถามของฉันคือ - อะไรคือความแตกต่างระหว่างทั้งสามฉันหมายถึงสิ่งที่เกิดขึ้นภายใต้ประทุนเมื่อมีการเรียกใช้วิธีใดใน 3 วิธี วิธีใดที่ควรใช้เมื่อใดและข้อดีข้อเสียของการใช้วิธีใดบ้าง
101 python  matplotlib 

4
รูปของ imshow () เล็กเกินไป
ฉันพยายามมองเห็นอาร์เรย์ numpy โดยใช้ imshow () เนื่องจากมันคล้ายกับ imagesc () ใน Matlab imshow(random.rand(8, 90), interpolation='nearest') รูปที่ได้มีขนาดเล็กมากที่ตรงกลางของหน้าต่างสีเทาในขณะที่พื้นที่ส่วนใหญ่ไม่ว่าง ฉันจะตั้งค่าพารามิเตอร์เพื่อให้รูปใหญ่ขึ้นได้อย่างไร? ฉันลอง figsize = (xx, xx) แล้วมันไม่ใช่สิ่งที่ฉันต้องการ ขอบคุณ!
101 python  numpy  matplotlib 

4
Heatmap ใน matplotlib ด้วย pcolor?
ฉันต้องการสร้างแผนที่ความร้อนเช่นนี้ (แสดงในFlowingData ): แหล่งข้อมูลอยู่ที่นี่แต่ข้อมูลแบบสุ่มและป้ายกำกับจะใช้ได้ดีเช่น import numpy column_labels = list('ABCD') row_labels = list('WXYZ') data = numpy.random.rand(4,4) การสร้างแผนที่ความร้อนนั้นง่ายพอใน matplotlib: from matplotlib import pyplot as plt heatmap = plt.pcolor(data) และฉันยังพบข้อโต้แย้งcolormap ที่ดูถูกต้อง:heatmap = plt.pcolor(data, cmap=matplotlib.cm.Blues) แต่นอกเหนือจากนั้นฉันไม่สามารถหาวิธีแสดงป้ายกำกับสำหรับคอลัมน์และแถวและแสดงข้อมูลในการวางแนวที่เหมาะสม (จุดเริ่มต้นที่ด้านซ้ายบนแทนที่จะเป็นด้านล่างซ้าย) ความพยายามที่จะจัดการheatmap.axes(เช่นheatmap.axes.set_xticklabels = column_labels) ทั้งหมดล้มเหลว ฉันขาดอะไรไปที่นี่?

6
วิธีหมุนป้ายติ๊กแกน x ใน Pandas barplot
ด้วยรหัสต่อไปนี้: import matplotlib matplotlib.style.use('ggplot') import matplotlib.pyplot as plt import pandas as pd df = pd.DataFrame({ 'celltype':["foo","bar","qux","woz"], 's1':[5,9,1,7], 's2':[12,90,13,87]}) df = df[["celltype","s1","s2"]] df.set_index(["celltype"],inplace=True) df.plot(kind='bar',alpha=0.75) plt.xlabel("") ฉันสร้างพล็อตนี้: ฉันจะหมุนป้ายขีดแกน x เป็น 0 องศาได้อย่างไร ฉันพยายามเพิ่มสิ่งนี้ แต่ไม่ได้ผล: plt.set_xticklabels(df.index,rotation=90)

7
Matplotlib แถบสีไม่ต่อเนื่อง
ฉันกำลังพยายามสร้างแถบสีแยกสำหรับ scatterplot ใน matplotlib ฉันมีข้อมูล x, y ของฉันและแต่ละจุดมีค่าแท็กจำนวนเต็มซึ่งฉันต้องการแสดงด้วยสีที่ไม่ซ้ำกันเช่น plt.scatter(x, y, c=tag) โดยทั่วไปแท็กจะเป็นจำนวนเต็มตั้งแต่ 0-20 แต่ช่วงที่แน่นอนอาจเปลี่ยนแปลงได้ จนถึงตอนนี้ฉันเพิ่งใช้การตั้งค่าเริ่มต้นเช่น plt.colorbar() ซึ่งให้ช่วงสีที่ต่อเนื่องกัน ตามหลักการแล้วฉันต้องการชุดสีที่ไม่ต่อเนื่อง n (n = 20 ในตัวอย่างนี้) ที่ดีไปกว่านั้นคือการได้รับค่าแท็กเป็น 0 เพื่อสร้างสีเทาและ 1-20 มีสีสัน ฉันพบสคริปต์ 'ตำราอาหาร' บางส่วน แต่มันซับซ้อนมากและฉันไม่คิดว่ามันเป็นวิธีที่ถูกต้องในการแก้ปัญหาที่ดูเหมือนง่าย ๆ


11
FutureWarning: การเปรียบเทียบองค์ประกอบล้มเหลว ส่งคืนสเกลาร์ แต่ในอนาคตจะทำการเปรียบเทียบตามองค์ประกอบ
ฉันใช้ Pandas 0.19.1บน Python 3 ฉันได้รับคำเตือนเกี่ยวกับบรรทัดของโค้ดเหล่านี้ ฉันพยายามที่จะได้รับรายชื่อที่มีทั้งหมดจำนวนแถวที่สตริงเป็นปัจจุบันที่คอลัมน์PeterUnnamed: 5 df = pd.read_excel(xls_path) myRows = df[df['Unnamed: 5'] == 'Peter'].index.tolist() มันสร้างคำเตือน: "\Python36\lib\site-packages\pandas\core\ops.py:792: FutureWarning: elementwise comparison failed; returning scalar, but in the future will perform elementwise comparison result = getattr(x, name)(y)" FutureWarning นี้คืออะไรและฉันควรเพิกเฉยเพราะดูเหมือนจะใช้งานได้


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