මැට්ප්ලොට්ලිබ් සමඟ ඇඳ ඇති රූපයේ ප්රමාණය ඔබ වෙනස් කරන්නේ කෙසේද?
fig, ax = plt.subplots(figsize=(20, 10))
fig = plt.gcf()
-> fig.set_size_inches(11,8)
ව්යාකූලත්වය එකවරම වළක්වා ගැනීමට.
මැට්ප්ලොට්ලිබ් සමඟ ඇඳ ඇති රූපයේ ප්රමාණය ඔබ වෙනස් කරන්නේ කෙසේද?
fig, ax = plt.subplots(figsize=(20, 10))
fig = plt.gcf()
-> fig.set_size_inches(11,8)
ව්යාකූලත්වය එකවරම වළක්වා ගැනීමට.
Answers:
රූපය ඔබට ඇමතුම් අත්සන කියයි:
from matplotlib.pyplot import figure
figure(num=None, figsize=(8, 6), dpi=80, facecolor='w', edgecolor='k')
figure(figsize=(1,1))
අඟල්-අඟල් රූපයක් නිර්මාණය කරනු ඇත, එය ඔබ වෙනත් dpi තර්කයක් ලබා නොදුනහොත් පික්සල් 80 -80 -80 වනු ඇත.
show()
උත්පතන කවුළුව නිර්මාණය කිරීමට, ඔබ ඇමතීමට අවශ්යයි figure(num=1,...)
පෙර ඔබ ඕනෑම දෙයක් සැලසුම් කරන - pyplot / pylab ඔබට යමක් අඳින්න ඉක්මනින් චරිතයක් නිර්මාණය, සහ උත්පතන දර්ශණය ප්රමාණය මෙම අවස්ථාවේදී සවි කිරීමට.
ඔබට දැනටමත් රූපය නිර්මාණය කර ඇත්නම් ඔබට මෙය ඉක්මනින් කළ හැකිය:
fig = matplotlib.pyplot.gcf()
fig.set_size_inches(18.5, 10.5)
fig.savefig('test2png.png', dpi=100)
පවත්නා ගු කවුළු එකතු කිරීමකට ප්රමාණයේ වෙනස ප්රචාරණය කිරීම සඳහා forward=True
fig.set_size_inches(18.5, 10.5, forward=True)
imshow
, දැන් මම මෙම කේතය භාවිතා කරන්නේ කුමන්ත්රණ කළ ප්රදේශය අවට ඇති ඉඩ ඉවත් කිරීමෙන් පසුවය plt.subplots_adjust(left=0.0, right=1.0, bottom=0.0, top=1.0)
.
fig.set_dpi(100)
.
Deprecation සටහන:
එක් වූයේ නිල Matplotlib මඟ පෙන්වීමක් , එම භාවිතයpylab
මොඩියුලය තවදුරටත් නිර්දේශ කරනු ලැබේ. මෙම අනෙක් පිළිතුරෙන්matplotlib.pyplot
විස්තර කර ඇති පරිදි කරුණාකර ඒ වෙනුවට මොඩියුලය භාවිතා කිරීම සලකා බලන්න .
පහත සඳහන් දෑ ක්රියාත්මක වන බව පෙනේ:
from pylab import rcParams
rcParams['figure.figsize'] = 5, 10
මෙය රූපයේ පළල අඟල් 5 ක් වන අතර එහි උස අඟල් 10 කි .
රූප පන්තිය පසුව එහි එක් තර්කයක පෙරනිමි අගය ලෙස මෙය භාවිතා කරයි.
fig.set_size_inches(18.5, 10.5, forward=True)
වැඩ කළා.
රූප පරිසරය භාවිතා නොකර ප්රමාණය වෙනස් කිරීමට ඔබට අවශ්ය නම් මෙම ක්රියාමාර්ගය ද ඇත. එබැවින් ඔබ plt.plot()
උදාහරණයක් ලෙස භාවිතා කරන්නේ නම්, ඔබට පළල සහ උස සහිත ටුපල් එකක් සැකසිය හැකිය.
import matplotlib.pyplot as plt
plt.rcParams["figure.figsize"] = (20,3)
ඔබ පේළිගත කරන විට මෙය ඉතා ප්රයෝජනවත් වේ (උදා: IPython Notebook සමඟ). ආසාමෙයර් දුටු පරිදි මෙම ප්රකාශය ආනයන ප්රකාශවල එකම කොටුව තුළට නොයැවීම වඩාත් සුදුසුය.
මෙම figsize
tuple අඟල් එසේ ඔබ සෙන්ටිමීටර එය සකස් කිරීමට අවශ්ය නම් ඔබ 2.54 විසින් ඔවුන් බෙදා වෙන් කිරීමට සඳහා බලන්න ඇති පිළිගන්නා මෙම ප්රශ්නය .
plt.rcParams["figure.figsize"] = (20,3)
අමතර කොටුවකට ඇමතිය යුතුය . ආයාත ප්රකාශයේ එකම කොටුව තුළ මා එය ඇමතූ විට එය නොසලකා හරිනු ඇත.
කරුණාකර සරල කේතයක් පහත පරිදි උත්සාහ කරන්න:
from matplotlib import pyplot as plt
plt.figure(figsize=(1,1))
x = [1,2,3]
plt.plot(x, x)
plt.show()
ඔබ කුමන්ත්රණය කිරීමට පෙර රූපයේ ප්රමාණය සැකසිය යුතුය.
atplotlib.pyplot.figure
වන අතර අනෙක් අය එය පැහැදිලිව නොකියයි. මම වගේ දේවල් දිගටම උත්සාහ කරන්න matplotlib.figure
සහmatplotlib.figure.Figure
plt.figure(figsize=(1,1))
ක x ස් චලනයයි. ඔබට ස්තුතියි.
ඔබ පැන්ඩාස් හි සංඛ්යා ප්රමාණය වෙනස් කිරීමට ක්රමයක් සොයන්නේ නම් , ඔබට උදා:
df['some_column'].plot(figsize=(10, 5))
කොහෙද df
පැන්ඩස් දත්ත රාමුවක්. නැතහොත්, පවතින රූප හෝ අක්ෂ භාවිතා කිරීමට
fig, ax = plt.subplots(figsize=(10,5))
df['some_column'].plot(ax=ax)
පෙරනිමි සැකසුම් වෙනස් කිරීමට ඔබට අවශ්ය නම්, ඔබට පහත සඳහන් දෑ කළ හැකිය:
import matplotlib
matplotlib.rc('figure', figsize=(10, 5))
ගූගල් හි පළමු සබැඳිය 'matplotlib figure size'
වන්නේ ගැලපුම් ඉමේජ්සයිස් ( පිටුවේ ගූගල් හැඹිලියයි ) ය.
මෙන්න ඉහත පිටුවෙන් පරීක්ෂණ පිටපතක්. එය test[1-3].png
එකම රූපයේ විවිධ ප්රමාණයේ ගොනු සාදයි :
#!/usr/bin/env python
"""
This is a small demo file that helps teach how to adjust figure sizes
for matplotlib
"""
import matplotlib
print "using MPL version:", matplotlib.__version__
matplotlib.use("WXAgg") # do this before pylab so you don'tget the default back end.
import pylab
import numpy as np
# Generate and plot some simple data:
x = np.arange(0, 2*np.pi, 0.1)
y = np.sin(x)
pylab.plot(x,y)
F = pylab.gcf()
# Now check everything with the defaults:
DPI = F.get_dpi()
print "DPI:", DPI
DefaultSize = F.get_size_inches()
print "Default size in Inches", DefaultSize
print "Which should result in a %i x %i Image"%(DPI*DefaultSize[0], DPI*DefaultSize[1])
# the default is 100dpi for savefig:
F.savefig("test1.png")
# this gives me a 797 x 566 pixel image, which is about 100 DPI
# Now make the image twice as big, while keeping the fonts and all the
# same size
F.set_size_inches( (DefaultSize[0]*2, DefaultSize[1]*2) )
Size = F.get_size_inches()
print "Size in Inches", Size
F.savefig("test2.png")
# this results in a 1595x1132 image
# Now make the image twice as big, making all the fonts and lines
# bigger too.
F.set_size_inches( DefaultSize )# resetthe size
Size = F.get_size_inches()
print "Size in Inches", Size
F.savefig("test3.png", dpi = (200)) # change the dpi
# this also results in a 1595x1132 image, but the fonts are larger.
ප්රතිදානය:
using MPL version: 0.98.1
DPI: 80
Default size in Inches [ 8. 6.]
Which should result in a 640 x 480 Image
Size in Inches [ 16. 12.]
Size in Inches [ 16. 12.]
සටහන් දෙකක්:
මොඩියුලයේ අදහස් සහ සත්ය ප්රතිදානය වෙනස් වේ.
ප්රමාණයේ වෙනස බැලීමට මෙම පිළිතුර එක් රූප ගොනුවක ඇති පින්තූර තුනම පහසුවෙන් ඒකාබද්ධ කිරීමට ඉඩ දෙයි.
fig = plt.figure() default_size = fig.get_size_inches() fig.set_size_inches( (default_size[0]*2, default_size[1]*2) )
import matplotlib.pyplot as plt
plt.figure(figsize=(20,10))
plt.plot(x,y) ## This is your plot
plt.show()
ඔබට මෙයද භාවිතා කළ හැකිය:
fig, ax = plt.subplots(figsize=(20, 10))
ඔබට සරලව භාවිතා කළ හැකිය ( matplotlib.figure.Figure වෙතින් ):
fig.set_size_inches(width,height)
Matplotlib 2.0.0 වන විට, ඔබේ කැන්වසය වෙනස්කම් දැකගත වහාම ලෙස වනු ඇත forward
ඉඟි පද පෙරනිමිTrue
.
ඔබට පළල හෝ උස වෙනස් කිරීමට අවශ්ය නම්දෙකම වෙනුවට , ඔබට භාවිතා කළ හැකිය
fig.set_figwidth(val)
හෝ fig.set_figheight(val)
මේවා වහාම ඔබගේ කැන්වසය යාවත්කාලීන කරනු ඇත, නමුත් Matplotlib 2.2.0 සහ නවතම ඒවා පමණි.
නියම කිරීමට අවශ්ය forward=True
ඉහත නිශ්චිතව සඳහන් දේ ට වඩා පැරණි අනුවාද ඔබේ කැන්වස් සජීවී-යාවත්කාලීන කිරීම සඳහා පැහැදිලි ලෙසම. Matplotlib 1.5.0 ට වඩා පැරණි අනුවාද වල පරාමිතියට set_figwidth
සහ set_figheight
ශ්රිත සහාය නොදක්වන බව සලකන්න forward
.
fig = ...
රේඛාවෙන් අදහස් දැක්වීමට උත්සාහ කරන්න
%matplotlib inline
import numpy as np
import matplotlib.pyplot as plt
N = 50
x = np.random.rand(N)
y = np.random.rand(N)
area = np.pi * (15 * np.random.rand(N))**2
fig = plt.figure(figsize=(18, 18))
plt.scatter(x, y, s=area, alpha=0.5)
plt.show()
මෙය මට හොඳින් ක්රියාත්මක වේ:
from matplotlib import pyplot as plt
F = plt.gcf()
Size = F.get_size_inches()
F.set_size_inches(Size[0]*2, Size[1]*2, forward=True) # Set forward to True to resize window along with plot in figure.
plt.show() # or plt.imshow(z_array) if using an animation, where z_array is a matrix or numpy array
මෙයද උදව් විය හැකිය: http://matplotlib.1069221.n5.nabble.com/Resizing-figure-windows-td11424.html
ඔබගේ රූපයේ ප්රමාණය N වාරයක් වැඩි කිරීමට ඔබේ pl.show () ට පෙර මෙය ඇතුළත් කළ යුතුය:
N = 2
params = pl.gcf()
plSize = params.get_size_inches()
params.set_size_inches( (plSize[0]*N, plSize[1]*N) )
එය ipython නෝට්බුක් සමඟද හොඳින් ක්රියා කරයි.
මැට්ප්ලොට්ලිබ්ට දේශීයව මෙට්රික් ක්රමය භාවිතා කළ නොහැකි බැවින් , ඔබේ රූපයේ ප්රමාණය සෙන්ටිමීටර වැනි සාධාරණ දිගකින් නියම කිරීමට අවශ්ය නම්, ඔබට පහත සඳහන් දෑ කළ හැකිය ( gns-ank වෙතින් කේතය ):
def cm2inch(*tupl):
inch = 2.54
if isinstance(tupl[0], tuple):
return tuple(i/inch for i in tupl[0])
else:
return tuple(i/inch for i in tupl)
එවිට ඔබට භාවිතා කළ හැකිය:
plt.figure(figsize=cm2inch(21, 29.7))
Psihodelia ගේ පිළිතුර සාමාන්යකරණය කිරීම සහ සරල කිරීම. ඔබට රූපයේ වත්මන් ප්රමාණය සාධකයක් මගින් වෙනස් කිරීමට අවශ්ය නම්sizefactor
import matplotlib.pyplot as plt
# here goes your code
fig_size = plt.gcf().get_size_inches() #Get current size
sizefactor = 0.8 #Set a zoom factor
# Modify the current size by the factor
plt.gcf().set_size_inches(sizefactor * fig_size)
වත්මන් ප්රමාණය වෙනස් කිරීමෙන් පසුව, ඔබ උප පොළ සැකැස්ම මනාව සකස් කළ යුතුය. රූප කවුළුව තුළ ඔබට එය කළ හැකිය GUI, හෝ subplots_adjust විධානය මඟින්
උදාහරණයක් වශයෙන්,
plt.subplots_adjust(left=0.16, bottom=0.19, top=0.82)
ඔබ භාවිතා කිරීමෙන් රූප ප්රමාණය කෙලින්ම වෙනස් කරයි
plt.set_figsize(figure=(10, 10))
pyplot
නම් කර ඇති කිසිදු ක්රමයක් නොමැත set_figsize
.
plt.figure(figsize=(20,10))