
Regression Line
Program plan:
- Import the header file.
- Define the “graphWin” method
- Create a window
- Set the coords
- Display the message on the window
- Call the “draw” method for set the point
- Call the “Line” method for draw the line
- Call the “draw” method for set the point
- Call the “Line” method for draw the line
- Call the “draw” method
- Call the “Rectangle” method
- Get the center position
- Set the “Done” text
- Call the “draw” method stop the program after clicking the “Done” text
- Accept the input from the user
- Set the list
- Make the condition true
- Get the mouse action
- Check the condition
- Break the loop
- Otherwise, store user points in an appended list
- Call the “draw” method
- Return the result
- Define the “average” method
- Set the values for the variables
- Iterate “i” until it reaches “allPoints” value
- Get the “x” and “y” value
- Calculate “sumX”, and “sumY”
- Increment the “count” value
- Calculate the “sumXiYi, “sqX”, “sumSqXi”, “SqY”, and sumSqYi” values
- Calculate the “a” and “b” values
- Return the values
- Define “main” method
- Display the text on the window
- Call the “average” method
- Set the values
- Call the “Line” method
- Call the “draw” method
- Get the mouse action
- Call the function “main()”.

Explanation of Solution
Program:
#import the required header files
from graphics import *
import math as m
#definition of "graphWin" method
def graphWin(Title):
#Create a graphics window
win = GraphWin(Title, 400, 400)
#set the coords
win.setCoords(-10, -10, 10, 10)
#tell user to select multiple locations on the screen to designate points
message = Text(Point(-3, 8), "Click to delineate points on the graph.")
#draw the point
message.draw(win)
#call the "Line" method
axisX = Line(Point(-10,0), Point(10,0))
#call the "draw" method
axisX.draw(win)
#call the "Line" method
axisY = Line(Point(0,10), Point(0,-10))
#call the "draw" method
axisY.draw(win)
#call the "Rectangle" method
r = Rectangle(Point(-9, -9), Point(-7,-8))
#call the "draw" method
r.draw(win)
#get the centre position
rCenter = r.getCenter()
#set the text
stopMouse = Text(rCenter, "Done")
#call the "draw" method
stopMouse.draw(win)
#accept input from user until <done> button is pressed
click = Point(0,0)
#set the list
allPoints = []
#check the condition
while True:
#get the mouse action
click = win.getMouse()
#check the condition
if ((-9 <= click.getX() <= -7) and (-9 <= click.getY() <= -8)):
#break the loop
break
#otherwise
else:
#store user points in an appended list
allPoints.append(click)
#call the "draw" method
click.draw(win)
#return the values
return allPoints, win
#definition of "average" method
def average(allPoints):
#set the values for the variables
sumX = 0
sumY = 0
count = 0
sumXiYi = 0
sumSqXi = 0
sumSqYi = 0
#iterate "i" until it reaches "allPoints" value
for i in allPoints:
#get the "x" and "y" value
x = i.getX()
y = i.getY()
#calculate the "sumX" value
sumX = sumX + x
#calculate the "sumY" value
sumY = sumY + y
#increment the value
count = count + 1
#calculate the "xy" value
xy = x * y
#calculate the "sumXiYi" value
sumXiYi = sumXiYi + xy
#calculate the "SqX" value
SqX = x * x
#calculate the "sumSqXi" value
sumSqXi = sumSqXi + SqX
#calculate the "SqY" value
SqY = y * y
#calculate the "sumSqYi" value
sumSqYi = sumSqYi + SqY
#calculate the "a" and "b" value
a = ((sumY * sumSqXi) - (sumX * sumXiYi)) / (count * (sumSqXi) - sumX ** 2)
b = ((count * sumXiYi) - (sumX * sumY)) / (count * (sumSqXi) - sumX ** 2)
#return the values
return a, b
#definition of "main" method
def main():
#get the text for the window
allPoints, win = graphWin("Regression Line")
#call the method
a, b = average(allPoints)
#set the values
x1 = -10
x2 = 10
#call the "Line" method
regressLine = Line(Point(x1, (a + b * x1)), Point(x2, (a + b * x2)))
#call the "draw" method
regressLine.draw(win)
#get the mouse action
win.getMouse()
#call the "main" method
main()
Output:
Screenshot of “Regression Line” window
After clicking “Done” button, the below window will appear
Screenshot of “Regression Line” window
Want to see more full solutions like this?
Chapter 8 Solutions
Python Programming: An Introduction to Computer Science, 3rd Ed.
- (Greedy Algorithms) Describe an efficient algorithm that, given a set {x1, x2, . . ., xn} of points on the real line, determines the smallest set of unit-length closed intervals that contains all of the given points. Argue that your algorithm is correct.arrow_forwardWhat does the value of the top variable indicate in this ArrayStack implementation? What will happen if we call pop on this stack? What value will be returned, and what changes will occur in the array and the top variable? 3. If we push the value "echo" onto the stack, where will it be stored in the array, and what will be the new value of top? 4. Explain why index 0 contains the string "alpha" even though top is currently 3. 5. What would the state of the stack look like (values in the array and value of top) after two consecutive pop 0 operations?arrow_forwardPlease solve and show all work. Suppose there are four routers between a source and a destination hosts. Ignoring fragmentation, an IP datagram sent from source to destination will travel over how many interfaces? How many forwarding tables will be indexed to move the datagram from the source to the destination?arrow_forward
- Please solve and show all work. When a large datagram is fragmented into multiple smaller datagrams, where are these smaller datagrams reassembled into a single large datagram?arrow_forwardPlease solve and show all steps. True or false? Consider congestion control in TCP. When the timer expires at the sender, the value of ssthresh is set to one-half of the last congestion window.arrow_forwardPlease solve and show all work. What are the purposes of the SNMP GetRequest and SetRequest messages?arrow_forward
- Please solve and show all steps. Three types of switching fabrics are discussed in our course. List and briefly describe each type. Which, if any, can send multiple packets across the fabric in parallel?arrow_forwardPlease solve and show steps. List the four broad classes of services that a transport protocol can provide. For each of the service classes, indicate if either UDP or TCP (or both) provides such a service.arrow_forwardPlease solve and show all work. What is the advantage of web caches, and how does it work?arrow_forward
- Please solve and show steps. Consider a DASH system for which there are N video versions (at N different rates and qualities) and N audio versions (at N different rates and qualities). Suppose we want to allow the player to choose at any time any of the N video versions and any of the N audio versions. If we create files so that the audio is mixed in with its matched-rate video and the server sends only one media stream at a given time, how many files will the server need to store (each with a different URL)? If the server instead sends the audio and video streams separately and has the client synchronize the streams, how many files will the server need to store?arrow_forwardPlease solve and show all work. Recall that TCP can be enhanced with SSL to provide process-to-process security services, including encryption. Does SSL operate at the transport layer or the application layer?arrow_forwardPlease solve and show all work. Compute the checksum of the words 1011 1001, 1001 1110, and 0111 1011. Show all work.arrow_forward
- EBK JAVA PROGRAMMINGComputer ScienceISBN:9781305480537Author:FARRELLPublisher:CENGAGE LEARNING - CONSIGNMENTEBK JAVA PROGRAMMINGComputer ScienceISBN:9781337671385Author:FARRELLPublisher:CENGAGE LEARNING - CONSIGNMENTC++ Programming: From Problem Analysis to Program...Computer ScienceISBN:9781337102087Author:D. S. MalikPublisher:Cengage Learning
- Microsoft Visual C#Computer ScienceISBN:9781337102100Author:Joyce, Farrell.Publisher:Cengage Learning,C++ for Engineers and ScientistsComputer ScienceISBN:9781133187844Author:Bronson, Gary J.Publisher:Course Technology PtrProgramming Logic & Design ComprehensiveComputer ScienceISBN:9781337669405Author:FARRELLPublisher:Cengage




