Bab 2 Fungsi grafik 2.1 Membuat grafik fungsi matematika Untuk menerapkan konsep matematika ke pengaturan realistis di dunia, penting untuk mengenali tiga hal yang disukai notasi y=mx+b tidak mendukung dengan baik:

  1. Hubungan dunia nyata umumnya melibatkan lebih dari dua kuantitas.
  2. Kuantitas dunia nyata biasanya tidak disebutkan namanya x dan y, tetapi jumlahnya seperti “konsentrasi AMP siklik” atau “tegangan membran” atau “pengeluaran pemerintah”.
  3. Situasi dunia nyata melibatkan banyak hubungan yang berbeda, dan model matematisnya dapat melibatkan perkiraan dan representasi yang berbeda dari hubungan tersebut.

Dalam memplot suatu fungsi, Anda perlu menentukan beberapa hal:

Apa fungsinya, apa inputnya, Berapa kisaran input untuk membuat plot berakhir, Nilai parameter apa pun

Ada tiga fungsi grafik {mosaicCalc}yang memungkinkan Anda membuat grafik fungsi, dan melapisi plot tersebut dengan grafik fungsi atau data lain. Ini adalah:

  1. slice_plot()untuk fungsi dari satu variabel.
  2. contour_plot()untuk fungsi dua variabel.
  3. interactive_plot()yang menghasilkan widget HTML untuk berinteraksi dengan fungsi dua variabel.

Berikut adalah contoh merencanakan fungsi garis lurus:

library(mosaicCalc)
## Loading required package: mosaic
## Registered S3 method overwritten by 'mosaic':
##   method                           from   
##   fortify.SpatialPolygonsDataFrame ggplot2
## 
## The 'mosaic' package masks several functions from core packages in order to add 
## additional features.  The original behavior of these functions should not be affected by this.
## 
## Attaching package: 'mosaic'
## The following objects are masked from 'package:dplyr':
## 
##     count, do, tally
## The following object is masked from 'package:Matrix':
## 
##     mean
## The following object is masked from 'package:ggplot2':
## 
##     stat
## The following objects are masked from 'package:stats':
## 
##     binom.test, cor, cor.test, cov, fivenum, IQR, median, prop.test,
##     quantile, sd, t.test, var
## The following objects are masked from 'package:base':
## 
##     max, mean, min, prod, range, sample, sum
## Loading required package: mosaicCore
## 
## Attaching package: 'mosaicCore'
## The following objects are masked from 'package:dplyr':
## 
##     count, tally
## 
## Attaching package: 'mosaicCalc'
## The following object is masked from 'package:stats':
## 
##     D
slice_plot(3 * x - 2 ~ x, domain(x = range(0, 10)))

Ketika Anda melakukan ini, ingatlah untuk memberikan nilai numerik khusus untuk parameter, seperti ini:

library(mosaicCalc)
m = -3
b = -2
slice_plot(m * x + b ~ x, domain(x = range(0, 10)))

contoh lain:

library(mosaicCalc)
A = 100
slice_plot( A * x ^ 2 ~ x, domain(x = range(-2, 3))) 

A = 5
slice_plot( A * x ^ 2 ~ x,  domain(x = range(0, 3)),  color="red" )

slice_plot( cos(t) ~ t, domain(t = range(0,4*pi) ))

Anda dapat menggunakan makeFun( )untuk memberi nama pada fungsi tersebut. Contohnya:

library(mosaicCalc)
g  <- makeFun(2*x^2 - 5*x + 2 ~ x)
slice_plot(g(x) ~ x , domain(x = range(-2, 2)))

2.2 Membuat scatterplot Di sini, kita akan bekerja dengan “Income-Housing.csv”, yang terletak di “http://www.mosaic-web.org/go/datasets/Income-Housing.csv”. File ini memberikan informasi dari survei tentang kondisi perumahan bagi orang-orang dengan pendapatan berbeda di AS. (Sumber: Susan E. Mayer (1997) Apa yang tidak dapat dibeli dengan uang: Penghasilan keluarga dan peluang hidup anak-anak Harvard Univ. Press hal. 102.)

Berikut cara membacanya menjadi R:

library(mosaicCalc)
Housing = read.csv("http://www.mosaic-web.org/go/datasets/Income-Housing.csv")

1.read.csv()fungsi mengembalikan nilai yang disimpan dalam objek bernama housing 2. nama “http://www.mosaic-web.org/go/datasets/Income-Housing.csv"diapit oleh tanda petik. Ini adalah tanda kutip ganda satu karakter, yaitu,”dan bukan tanda kutip tunggal berulang ’ ’atau backquote

Setelah data dibaca, Anda dapat melihat data hanya dengan mengetikkan nama objek (tanpa tanda kutip!) yang menyimpan data tersebut. Contohnya,

Housing 
##   Income IncomePercentile CrimeProblem AbandonedBuildings IncompleteBathroom
## 1   3914                5         39.6               12.6                2.6
## 2  10817               15         32.4               10.0                3.3
## 3  21097               30         26.7                7.1                2.3
## 4  34548               50         23.9                4.1                2.1
## 5  51941               70         21.4                2.3                2.4
## 6  72079               90         19.9                1.2                2.0
##   NoCentralHeat ExposedWires AirConditioning TwoBathrooms MotorVehicle
## 1          32.3          5.5            52.3         13.9         57.3
## 2          34.7          5.0            55.4         16.9         82.1
## 3          28.1          2.4            61.7         24.8         91.7
## 4          21.4          2.1            69.8         39.6         97.0
## 5          14.9          1.4            73.9         51.2         98.0
## 6           9.6          1.0            76.7         73.2         99.0
##   TwoVehicles ClothesWasher ClothesDryer Dishwasher Telephone
## 1        17.3          57.8         37.5       16.5      68.7
## 2        34.3          61.4         38.0       16.0      79.7
## 3        56.4          78.6         62.0       25.8      90.8
## 4        75.3          84.4         75.2       41.6      96.5
## 5        86.6          92.8         88.9       58.2      98.3
## 6        92.9          97.1         95.6       79.7      99.5
##   DoctorVisitsUnder7 DoctorVisits7To18 NoDoctorVisitUnder7 NoDoctorVisit7To18
## 1                3.6               2.6                13.7               31.2
## 2                3.7               2.6                14.9               32.0
## 3                3.6               2.1                13.8               31.4
## 4                4.0               2.3                10.4               27.3
## 5                4.0               2.5                 7.7               23.9
## 6                4.7               3.1                 5.3               17.5

Anda dapat melihat nama semua variabel dalam format yang ringkas dengan

names(Housing)
##  [1] "Income"              "IncomePercentile"    "CrimeProblem"       
##  [4] "AbandonedBuildings"  "IncompleteBathroom"  "NoCentralHeat"      
##  [7] "ExposedWires"        "AirConditioning"     "TwoBathrooms"       
## [10] "MotorVehicle"        "TwoVehicles"         "ClothesWasher"      
## [13] "ClothesDryer"        "Dishwasher"          "Telephone"          
## [16] "DoctorVisitsUnder7"  "DoctorVisits7To18"   "NoDoctorVisitUnder7"
## [19] "NoDoctorVisit7To18"

Ketika Anda ingin mengakses salah satu variabel, Anda memberi nama seluruh kumpulan data diikuti dengan nama variabel, dengan dua nama dipisahkan dengan $tanda, seperti ini:

Housing$Income
## [1]  3914 10817 21097 34548 51941 72079
Housing$CrimeProblem
## [1] 39.6 32.4 26.7 23.9 21.4 19.9

Ejaan dan kapitalisasi itu penting. Jika Anda membuat kesalahan, betapapun remehnya bagi pembaca manusia, R tidak akan mengerti apa yang Anda inginkan.

ika Anda ingin memplot fungsi matematika pada data, Anda harus menggunakan fungsi plot untuk membuat lapisan lain. Kemudian, untuk menampilkan dua lapisan dalam plot yang sama, hubungkan dengan %>%simbol (disebut “pipa”). Perhatikan bahwa tidak pernah%>% bisa di awal baris baru.

library(mosaicCalc)
gf_point( 
  CrimeProblem ~ Income, data=Housing ) %>%
  slice_plot(
    40 - Income/2000 ~ Income, color = "red")

Jika, saat memplot data Anda, Anda lebih suka menyetel batas sumbu ke sesuatu pilihan Anda sendiri, Anda bisa melakukannya. Contohnya:

library(mosaicCalc)
gf_point(
  CrimeProblem ~ Income, data = Housing) %>% 
  slice_plot(
    40 - Income / 2000 ~ Income, color = "blue") %>%
  gf_lims(
    x = range(0,100000), 
    y=range(0,50))

Grafik ilmiah yang dibuat dengan benar harus memiliki nama sumbu yang informatif. Anda dapat mengatur nama sumbu secara langsung menggunakan gf_labs

library(mosaicCalc)
gf_point(
  CrimeProblem ~ Income, data=Housing) %>%
  gf_labs(x= "Income Bracket ($US per household)/year",
          y = "Fraction of Households",
          main = "Crime Problem") %>%
  gf_lims(x = range(0,100000), y = range(0,50))

2.3 Membuat grafik fungsi dua variabel gunakan contour_plot()untuk memplot dengan dua variabel input. Anda perlu mencantumkan dua variabel di sebelah kanan +tanda, dan Anda perlu memberikan rentang untuk masing-masing variabel. Sebagai contoh

library(mosaicCalc)
contour_plot(
  sin(2*pi*t/10)*exp(-.2*x) ~ t & x, 
  domain(t = range(0,20), x = range(0,10)))

Setiap kontur diberi label, dan secara default plot diisi dengan warna untuk membantu memandu mata. Jika Anda lebih suka hanya melihat kontur, tanpa isian warna, gunakan tile=FALSEargumen.

library(mosaicCalc)
contour_plot( 
  sin(2*pi*t/10)*exp(-.2*x) ~ t & x, 
  domain(t=0:20, x=0:10))

anda bisa mendapatkan komputer untuk menampilkan plot perspektif 3 dimensi dengan menggunakan interactive_plot()fungsi. Seperti yang akan Anda lihat dengan mengarahkan mouse di sekitar plot, ini interaktif.

library(mosaicCalc)
interactive_plot(
   sin(2*pi*t/10)*exp(-.5*x) ~ t & x, 
   domain(t = 0:20, x = 0:10))

Untuk membuat fungsi yang dapat Anda evaluasi secara numerik, buatlah fungsi tersebut dengan makeFun(). Sebagai contoh:

library(mosaicCalc)
g <- makeFun(
  sin(2*pi*t/10)*exp(-.2*x) ~ t & x)
contour_plot(
  g(t, x) ~ t + x,  
  domain(t=0:20, x=0:10))

g(x = 4, t = 7)
## [1] -0.4273372

jika

g(4, 7)
## [1] 0.1449461