Python Forum
How to change the resolution of an image and save multiple plots.
Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
How to change the resolution of an image and save multiple plots.
#1
This code solves a differential equation by the method of 4nd Runge-Kutta. It works fine, but I want to save the diagram for each loop with high resolution. What can I do?

from sympy.solvers import solve
from sympy import Symbol
from sympy import solve, Poly, Eq, Function, exp
from sympy.abc import x, y, z, a, b
import matplotlib.pyplot as plt
import numpy as np
import math as mt

def coef0(k0,c,N):
    return k0**2*c**2*N**2
def coef1(k0,q,a):
    return -(k0**2+q**2+0.25*a**2)*c**2
def coef2(k0):
    return 1

def sols(a0,a1,a2):
    omg2=Symbol('omg2')
    c=solve(Poly(a2*omg2**2+a1*omg2+a0),omg2)
    return c

def co1(a,k0,omg2,N,c):
    c=a
    return c

def co2(a,k0,omg2,N,c):
    c=-(omg2**2-k0**2*c**2*omg2+k0**2*c**2*N**2)/(c**2*omg2)
    return c
    
def deriv(t,y,c1,c2): # Αυτή εδώ
    xi_dev=y[1]
    psi_dev=c1*y[1]+c2*y[0]
    return xi_dev,psi_dev

loop=(1,2,3)

for j in loop:

    a=20.42
    k0=2
    c=2
    N=10
    
    q=j*np.pi
    print('q=',q)
    cof0=coef0(k0,c,N)
    cof1=coef1(k0,q,a)
    cof2=coef2(k0)
    omg2=sols(cof0,cof1,cof2)[1]
    print('omg2=',omg2)

    

    c1=co1(a,k0,omg2,N,c)
    c2=co2(a,k0,omg2,N,c)

    
    tmin=0
    tmax=5
    h=0.05
    t=np.arange(tmin,tmax,h)

    

    y=np.zeros((2,len(t)), dtype=float)
    k1=np.zeros((2,len(t)), dtype=float)
    k2=np.zeros((2,len(t)), dtype=float)
    k3=np.zeros((2,len(t)), dtype=float)
    k4=np.zeros((2,len(t)), dtype=float)

    
    y[0,0]=0.1
    y[1,0]=0.2

    
    plt.figure(j)

    plt.rc('text', usetex=True)
    plt.rc('font', family='serif')

    
    
    for i in range(len(t)):
    
        if i==len(t)-1: # Αν δεν το κάνω αυτό υπάρχει πρόβλημα με τις διαστάσεις
            break
    
        k1[:,i]=deriv(t[i],y[:,i],c1,c2)
        k2[:,i]=deriv(t[i]+0.5*h,y[:,i]+k1[:,i]*0.5*h,c1,c2)
        k3[:,i]=deriv(t[i]+0.5*h,y[:,i]+k2[:,i]*0.5*h,c1,c2)
        k4[:,i]=deriv(t[i]+h,y[:,i]+k3[:,i]*h,c1,c2)
    
        y[0,i+1]=y[0,i]+1/6*(k1[0,i]+2*k2[0,i]+2*k3[0,i]+k4[0,i])*h
        y[1,i+1]=y[1,i]+1/6*(k1[1,i]+2*k2[1,i]+2*k3[1,i]+k4[1,i])*h
    
        
        col1=(1,0,0)
        
        plt.scatter(t[i], y[0,i], s=7, c=col1, marker='*')
    
    plt.xlabel(r'$x$',fontsize=16)
    plt.ylabel(r'$\log\xi_{x}$',fontsize=16)
    plt.title(r"Dependence of $\log\xi_{x}$ from $x$",fontsize=16, color='Black')

   
    plt.yscale('log')
    
    plt.savefig('x_dependence')
    plt.show()
I am asking sorry because the code is very large.
Reply
#2
Your savefig call always passes the same argument. If you build the filename using j you'll save a copy for each run of that loop.
Reply


Possibly Related Threads…
Thread Author Replies Views Last Post
  Create multiple quiver plots 3D array PengEng 0 1,714 Apr-14-2020, 12:57 PM
Last Post: PengEng
  Plots issue shane1236 1 2,084 Aug-06-2019, 10:00 AM
Last Post: shane1236
  Add space between plots AdWill97 0 2,059 May-15-2019, 02:04 PM
Last Post: AdWill97
  save parameters an data from image to csv pifko22 0 1,937 Apr-02-2019, 10:22 PM
Last Post: pifko22
  2D to 3D plots ekq378 0 10,433 Nov-14-2018, 06:13 PM
Last Post: ekq378
  Three-dimensional Contour Plots minifizikus 1 3,268 Sep-13-2018, 10:56 PM
Last Post: Larz60+
  Change color pixel in an image louloudevinci 2 39,015 Mar-25-2018, 08:27 PM
Last Post: louloudevinci
  change application image issac_n 7 16,256 Feb-22-2018, 03:03 PM
Last Post: issac_n

Forum Jump:

User Panel Messages

Announcements
Announcement #1 8/1/2020
Announcement #2 8/2/2020
Announcement #3 8/6/2020