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

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

3
matplotlib รับค่า ylim
ฉันใช้matplotlibเพื่อลงจุดข้อมูล (โดยใช้plotและerrorbarฟังก์ชัน) จาก Python ฉันต้องพล็อตชุดของพล็อตที่แยกจากกันและเป็นอิสระจากนั้นปรับylimค่าเพื่อให้สามารถเปรียบเทียบด้วยสายตาได้ง่าย ฉันจะดึงylimค่าจากแต่ละพล็อตได้อย่างไรเพื่อให้ฉันสามารถหาค่า min และ max ของค่า ylim ล่างและบนตามลำดับและปรับพล็อตเพื่อให้สามารถเปรียบเทียบด้วยสายตาได้ แน่นอนฉันสามารถวิเคราะห์ข้อมูลและหาylimค่าที่กำหนดเองได้... แต่ฉันต้องการใช้matplotlibเพื่อทำเช่นนั้น ข้อเสนอแนะเกี่ยวกับวิธีการทำสิ่งนี้อย่างง่ายดาย (และมีประสิทธิภาพ) หรือไม่? นี่คือฟังก์ชัน Python ของฉันที่ใช้matplotlib: import matplotlib.pyplot as plt def myplotfunction(title, values, errors, plot_file_name): # plot errorbars indices = range(0, len(values)) fig = plt.figure() plt.errorbar(tuple(indices), tuple(values), tuple(errors), marker='.') # axes axes = plt.gca() axes.set_xlim([-0.5, len(values) …
115 python  matplotlib  plot 

4
อัปเดตพล็อตแบบไดนามิกใน matplotlib
ฉันกำลังสร้างแอปพลิเคชันใน Python ซึ่งรวบรวมข้อมูลจากพอร์ตอนุกรมและลงจุดกราฟของข้อมูลที่รวบรวมเทียบกับเวลาที่มาถึง เวลาที่มาถึงของข้อมูลไม่แน่นอน ฉันต้องการให้พล็อตอัปเดตเมื่อได้รับข้อมูล ฉันค้นหาวิธีการทำสิ่งนี้และพบสองวิธี: เคลียร์พล็อตและวาดพล็อตใหม่พร้อมจุดทั้งหมดอีกครั้ง ทำให้พล็อตเคลื่อนไหวโดยเปลี่ยนหลังจากช่วงเวลาที่กำหนด ฉันไม่ชอบอันแรกเนื่องจากโปรแกรมทำงานและรวบรวมข้อมูลเป็นเวลานาน (เช่นวัน) และการวาดพล็อตใหม่จะค่อนข้างช้า อันที่สองไม่เป็นที่นิยมเช่นกันเนื่องจากเวลาที่มาถึงของข้อมูลไม่แน่นอนและฉันต้องการให้พล็อตอัปเดตเมื่อได้รับข้อมูลเท่านั้น มีวิธีใดบ้างที่ฉันสามารถอัปเดตพล็อตเพียงแค่เพิ่มคะแนนให้มากขึ้นเท่านั้นเมื่อได้รับข้อมูล

6
จัดรูปแบบแกน y เป็นเปอร์เซ็นต์
ฉันมีพล็อตเดิมที่สร้างขึ้นด้วยหมีแพนด้าเช่นนี้: df['myvar'].plot(kind='bar') แกน y จัดรูปแบบเป็นทศนิยมและฉันต้องการเปลี่ยนแกน y เป็นเปอร์เซ็นต์ โซลูชันทั้งหมดที่ฉันพบใช้ไวยากรณ์ ax.xyz และฉันสามารถวางโค้ดใต้บรรทัดด้านบนที่สร้างพล็อตได้เท่านั้น (ฉันไม่สามารถเพิ่ม ax = ax ในบรรทัดด้านบนได้) ฉันจะจัดรูปแบบแกน y เป็นเปอร์เซ็นต์โดยไม่ต้องเปลี่ยนบรรทัดด้านบนได้อย่างไร นี่คือวิธีแก้ปัญหาที่ฉันพบแต่ต้องการให้ฉันกำหนดพล็อตใหม่ : import matplotlib.pyplot as plt import numpy as np import matplotlib.ticker as mtick data = [8,12,15,17,18,18.5] perc = np.linspace(0,100,len(data)) fig = plt.figure(1, (7,4)) ax = fig.add_subplot(1,1,1) ax.plot(perc, data) fmt = '%.0f%%' …

3
การใส่ข้อความที่มุมบนซ้ายของพล็อต matplotlib
ฉันจะใส่ข้อความที่มุมซ้ายบน (หรือบนขวา) ของรูป matplotlib ได้อย่างไรเช่นตำนานด้านซ้ายบนจะอยู่ที่ใดหรืออยู่ด้านบนของพล็อต แต่อยู่ที่มุมบนซ้าย เช่นถ้าเป็น plt.scatter () แล้วสิ่งที่จะอยู่ในสี่เหลี่ยมของการกระจายให้วางไว้ที่มุมซ้ายบนสุด ฉันต้องการทำสิ่งนี้โดยไม่ต้องรู้ขนาดของ scatterplot ที่กำลังพล็อตเนื่องจากจะเปลี่ยนจากชุดข้อมูลเป็นชุดข้อมูล ฉันแค่อยากให้ข้อความอยู่ด้านซ้ายบนหรือประมาณด้านขวาบน ด้วยการวางตำแหน่งประเภทคำอธิบายแผนภูมิไม่ควรทับซ้อนกับจุดพล็อตกระจายอยู่แล้ว ขอบคุณ!
112 python  plot  matplotlib 

4
พล็อตเส้นเรียบด้วย PyPlot
ฉันมีสคริปต์ง่ายๆดังต่อไปนี้ที่จะลงจุดกราฟ: import matplotlib.pyplot as plt import numpy as np T = np.array([6, 7, 8, 9, 10, 11, 12]) power = np.array([1.53E+03, 5.92E+02, 2.04E+02, 7.24E+01, 2.72E+01, 1.10E+01, 4.70E+00]) plt.plot(T,power) plt.show() ตอนนี้เส้นตรงจากจุดหนึ่งไปยังอีกจุดหนึ่งซึ่งดูโอเค แต่น่าจะดีกว่าในความคิดของฉัน สิ่งที่ฉันต้องการคือทำให้เส้นระหว่างจุดเรียบ ใน Gnuplot smooth cplinesผมจะได้พล็อต มีวิธีง่ายๆในการทำ PyPlot หรือไม่? ฉันพบบทแนะนำบางอย่าง แต่ทั้งหมดดูเหมือนค่อนข้างซับซ้อน

4
ย้ายแกน x ไปที่ด้านบนสุดของพล็อตใน matplotlib
จากคำถามนี้เกี่ยวกับแผนที่ความร้อนใน matplotlibฉันต้องการย้ายชื่อแกน x ไปที่ด้านบนสุดของพล็อต import matplotlib.pyplot as plt import numpy as np column_labels = list('ABCD') row_labels = list('WXYZ') data = np.random.rand(4,4) fig, ax = plt.subplots() heatmap = ax.pcolor(data, cmap=plt.cm.Blues) # put the major ticks at the middle of each cell ax.set_xticks(np.arange(data.shape[0])+0.5, minor=False) ax.set_yticks(np.arange(data.shape[1])+0.5, minor=False) # want a more natural, table-like …

4
วิธีตั้งค่า 'อัตโนมัติ' สำหรับขีด จำกัด บน แต่ให้คงขีด จำกัด ล่างไว้ด้วย matplotlib.pyplot
ฉันต้องการตั้งค่าขีด จำกัด บนของแกน y เป็น 'อัตโนมัติ' แต่ฉันต้องการให้ขีด จำกัด ล่างของแกน y เป็นศูนย์เสมอ ฉันลอง 'auto' และ 'autorange' แต่ดูเหมือนจะไม่ได้ผล ขอบคุณล่วงหน้า. นี่คือรหัสของฉัน: import matplotlib.pyplot as plt def plot(results_plt,title,filename): ############################ # Plot results # mirror result table such that each parameter forms an own data array plt.cla() #print results_plt XY_results = [] XY_results = zip( …
112 python  matplotlib 

4
Python Matplotlib แกน Y ทำเครื่องหมายที่ด้านขวาของ Plot
ฉันมีพล็อตเส้นที่เรียบง่ายและต้องการย้ายเห็บแกน y จากด้านซ้าย (ค่าเริ่มต้น) ของพล็อตไปทางด้านขวา มีความคิดเกี่ยวกับวิธีการทำอย่างไร
112 python  matplotlib 

2
เรียกใช้ pylab.savefig โดยไม่แสดงผลใน ipython
ฉันต้องการสร้างรูปในไฟล์โดยไม่ต้องแสดงในสมุดบันทึก IPython ฉันไม่ชัดเจนเกี่ยวกับปฏิสัมพันธ์ระหว่างIPythonและmatplotlib.pylabในเรื่องนี้ แต่เมื่อฉันเรียกpylab.savefig("test.png")ตัวเลขปัจจุบันได้รับการแสดงนอกเหนือจากการบันทึกในtest.png. เมื่อสร้างไฟล์พล็อตชุดใหญ่โดยอัตโนมัติสิ่งนี้มักไม่เป็นที่พึงปรารถนา หรือในสถานการณ์ที่ต้องการไฟล์กลางสำหรับการประมวลผลภายนอกโดยแอปอื่น ไม่แน่ใจว่าเป็นคำถามmatplotlibหรือIPythonสมุดบันทึก

2
matplotlib: แถบสีและป้ายข้อความ
ฉันต้องการสร้างcolorbarตำนานสำหรับ a heatmapเพื่อให้ป้ายกำกับอยู่ตรงกลางของแต่ละสีที่ไม่ต่อเนื่องกัน ตัวอย่างที่ยืมมาจากที่นี่ : import matplotlib.pyplot as plt import numpy as np from matplotlib.colors import ListedColormap #discrete color scheme cMap = ListedColormap(['white', 'green', 'blue','red']) #data np.random.seed(42) data = np.random.rand(4, 4) fig, ax = plt.subplots() heatmap = ax.pcolor(data, cmap=cMap) #legend cbar = plt.colorbar(heatmap) cbar.ax.set_yticklabels(['0','1','2','>3']) cbar.set_label('# of contacts', rotation=270) # put …

3
การพล็อตรายการพิกัด (x, y) ใน python matplotlib
ฉันมีรายชื่อคู่(a, b)ที่ฉันต้องการพล็อตด้วยmatplotlibpython เป็นพิกัด xy จริง ขณะนี้กำลังสร้างสองพล็อตโดยที่ดัชนีของรายการให้พิกัด x และค่า y ของพล็อตแรกคือas ในคู่และค่า y ของพล็อตที่สองคือbs ในคู่ เพื่อชี้แจงข้อมูลของฉันมีลักษณะดังนี้: li = [(a,b), (c,d), ... , (t, u)] ฉันต้องการทำซับเดียวที่เรียกplt.plot()ไม่ถูกต้อง หากฉันไม่ต้องการซับเดียวฉันสามารถทำได้เล็กน้อย: xs = [x[0] for x in li] ys = [x[1] for x in li] plt.plot(xs, ys) ฉันจะให้ matplotlib พล็อตคู่เหล่านี้เป็นพิกัด xy ได้อย่างไร

3
วิธีการลงจุดหลายฟังก์ชันในรูปเดียวกันใน Matplotlib
ฉันจะพล็อตต่อไปนี้ 3 ฟังก์ชั่น (เช่นsin, cosและนอกจากนี้) บนโดเมนtในร่างเดียวกันได้หรือไม่ from numpy import * import math import matplotlib.pyplot as plt t = linspace(0, 2*math.pi, 400) a = sin(t) b = cos(t) c = a + b

2
Matplotlib - เลื่อนป้าย X-Axis ลง แต่ไม่ใช่ X-Axis Ticks
ฉันใช้ Matplotlib เพื่อพล็อตฮิสโตแกรม ใช้เคล็ดลับจากคำถามก่อนหน้าของฉัน: Matplotlib - ติดป้ายกำกับแต่ละถังฉันมีข้อผิดพลาดมากขึ้นหรือน้อยลง มีปัญหาสุดท้ายอย่างหนึ่ง - ก่อนหน้านี้ - ป้ายกำกับแกน x ("เวลา (ในหน่วยมิลลิวินาที)") กำลังแสดงผลอยู่ใต้เครื่องหมายถูกแกน x (0.00, 0.04, 0.08, 0.12 เป็นต้น) โดยใช้คำแนะนำจาก Joe Kingston (ดูคำถามด้านบน) ฉันลองใช้: ax.tick_params(axis='x', pad=30) อย่างไรก็ตามสิ่งนี้จะย้ายทั้งเครื่องหมายขีดแกน x (0.00, 0.04, 0.08, 0.12 เป็นต้น) รวมถึงป้ายชื่อแกน x ("เวลา (ในหน่วยมิลลิวินาที)"): มีวิธีใดบ้างที่จะย้ายเฉพาะป้ายแกน x ไปที่ด้านล่างของตัวเลขสามแถว Nb: คุณอาจต้องเปิด PNG ด้านล่างโดยตรง - คลิกขวาที่ภาพจากนั้นดูภาพ (ใน …

5
บันทึกภาพด้วย python ด้วยคุณภาพที่สูงมาก
ฉันจะบันทึกพล็อต python ที่มีคุณภาพสูงได้อย่างไร นั่นคือเมื่อฉันซูมเข้าวัตถุที่บันทึกในไฟล์ pdf ไปเรื่อย ๆ ไม่มีการเบลอ? นอกจากนี้โหมดที่ดีที่สุดในการบันทึกคืออะไร? png, eps? หรืออื่น ๆ ? ฉันทำไม่ได้pdfเพราะมีตัวเลขที่ซ่อนอยู่ซึ่งเกิดขึ้นกับการLatexmkรวบรวม

7
จะเลือกสีใหม่สำหรับแต่ละเส้นที่พล็อตภายในรูปใน matplotlib ได้อย่างไร?
ฉันไม่ต้องการระบุสีสำหรับแต่ละเส้นพล็อตและให้แต่ละบรรทัดมีสีที่แตกต่างกัน แต่ถ้าฉันวิ่ง: from matplotlib import pyplot as plt for i in range(20): plt.plot([0, 1], [i, i]) plt.show() จากนั้นฉันจะได้ผลลัพธ์นี้: หากคุณดูภาพด้านบนคุณจะเห็นว่า matplotlib พยายามเลือกสีสำหรับแต่ละบรรทัดที่แตกต่างกัน แต่ในที่สุดก็ใช้สีซ้ำ - สิบบรรทัดบนสุดใช้สีเดียวกันกับสิบอันดับล่าง ฉันแค่ต้องการหยุดไม่ให้ใช้สีที่ใช้แล้วซ้ำและ / หรือป้อนรายการสีที่จะใช้
109 matplotlib 

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