আর প্লটগুলিতে লটেক্স করা হচ্ছে


119

আমি LaTeXপ্লটের প্ল্যান্টের উপাদানগুলিতে টাইপসেটিং যুক্ত করতে চাই R(উদাহরণস্বরূপ: শিরোনাম, অক্ষ লেবেল, টীকা ইত্যাদি) এর সংমিশ্রণ base/latticeবা এর সাহায্যে ggplot2

প্রশ্নাবলী:

  • LaTeXএই প্যাকেজগুলি ব্যবহার করে প্লটে যাওয়ার কোনও উপায় আছে এবং যদি তা হয় তবে কীভাবে এটি করা হয়?
  • যদি তা না হয় তবে এটি সম্পাদন করার জন্য কি অতিরিক্ত প্যাকেজ রয়েছে?

উদাহরণস্বরূপ, প্যাকেজগুলির মাধ্যমে Python matplotlibসংকলিত হিসাবে এখানে আলোচনা করা হয়েছে: http://www.scipy.org/Cookbook/Matplotlib/UsingTexLaTeXtext.usetex

এমন কি কোনও প্রক্রিয়া রয়েছে যার মাধ্যমে এই জাতীয় প্লট তৈরি করা যায় R?


1
এই টিউটোরিয়ালটি আপনার জন্য কাজ করতে পারে (আমার জন্য আশ্চর্য কাজ :)): r-bloggers.com/latex-in-r- অনুচ্ছেদ
প্রজ্ঞাাদিত্য দাশ

প্লটগুলিতে ল্যাটেক্স রেন্ডার করার জন্য এই প্যাকেজটি সহায়ক হতে পারে: github.com/stefano-meschiari/latex2exp
স্টেফানো মেসিয়ারি

উত্তর:


48

এখানে ব্যবহার করে একটি উদাহরণ দেওয়া হয়েছে ggplot2:

q <- qplot(cty, hwy, data = mpg, colour = displ)
q + xlab(expression(beta +frac(miles, gallon)))

বিকল্প পাঠ


17
দুর্ভাগ্যক্রমে, এটিতে লটেক্সের প্রায় বৈশিষ্ট্য নেই।
মাইলস বেকার

এখন পরিস্থিতি কি? আমি মনে করি এটির সাথে 3.1.1 সামান্য উন্নতি হয়েছে।
লিও লোপোল্ড হার্টজ

35

এখান থেকে চুরি হয়ে যাওয়ায়, নিম্নলিখিত কমান্ডটি শিরোনাম আঁকতে সঠিকভাবে ল্যাটেক্স ব্যবহার করে:

plot(1, main=expression(beta[1]))

দেখুন ?plotmathআরো বিস্তারিত জানার জন্য।


12
আকর্ষণীয়, ডেমো (প্লটম্যাথ) সহ ভাল জিনিসও তাই গণিতের স্বরলিপি প্লটম্যাথের সিনট্যাক্সের মাধ্যমে পুনরায় ব্যাখ্যা করতে হবে? এটি সময়ের গৌরবহীন অপচয় হিসাবে মনে হচ্ছে, বিশেষত যদি আপনার জড়িত লটেক্স এক্সপ্রেশন থাকে। এজন্য আমি ম্যাটপ্ল্লটলিবের ল্যাকটেক্স নিজেই সংকলন করার ক্ষমতা পছন্দ করি। ল্যাটেক্স নিতে এবং প্লটম্যাথ সিনট্যাক্স উত্পন্ন করতে পারে এমন কিছু আছে কি?
ড্রিউকনওয়ে

আমি যে জানি না। আছে: ggplot2 সঙ্গে কাজ করার ক্ষীর পেয়ে সম্পর্কে RWiki একটি আকর্ষণীয় পোস্ট এর wiki.r-project.org/rwiki/...
ক্রিস্টোফার Dubois

34

সিআরএএন প্যাকেজ ল্যাটেক্স 2 এক্সপ এ একটি TeXফাংশন রয়েছে যা আর এর প্লটম্যাথ এক্সপ্রেশনগুলিতে লটেক্স সূত্রগুলি অনুবাদ করে। অক্ষর লেবেল, কিংবদন্তি লেবেল এবং সাধারণ পাঠ্যের মতো আপনি গাণিতিক টীকাগুলি প্রবেশ করতে যে কোনও জায়গায় এটি ব্যবহার করতে পারেন।

উদাহরণ স্বরূপ:

x <- seq(0, 4, length.out=100)
alpha <- 1:5

plot(x, xlim=c(0, 4), ylim=c(0, 10), 
     xlab='x', ylab=TeX('$\\alpha  x^\\alpha$, where $\\alpha \\in 1\\ldots 5$'), 
     type='n', main=TeX('Using $\\LaTeX$ for plotting in base graphics!'))

invisible(sapply(alpha, function(a) lines(x, a*x^a, col=a)))

legend('topleft', legend=TeX(sprintf("$\\alpha = %d$", alpha)), 
       lwd=1, col=alpha)

এই প্লট উত্পাদন করে ।


এটা অসাধারণ! আপনি প্রায় বলতে চান কি বোঝাতে পারেন ? ওটা কিভাবে কাজ করে?
ফ্রান্স রোডেনবার্গ

1
আনুমানিকভাবে, আমি বোঝাতে চাইছিলাম যে ল্যাটেক্স স্ট্রিংগুলি আর এর প্লটম্যাথ এক্সপ্রেশনগুলিতে অনুবাদ করা হয়েছে - যার অর্থ প্লটম্যাথ যদি কোনও নির্দিষ্ট লেটেক্স প্রতীককে সমর্থন করে না তবে তা রেন্ডার করা হবে না বা এটি উপলভ্য চিহ্নগুলিকে একত্রিত করে রেন্ডার করা হবে।
স্টেফানো মেসচিয়ারি

যদিও এটি দুর্দান্ত নয়। ঘৃণ্য দেখাচ্ছে এবং এটি কেবলমাত্র সীমিত সংখ্যক প্রতীককে সমর্থন করে। সবচেয়ে খারাপ এটি হ'ল এমন কিছু বলে মনে হচ্ছে না যা "প্রকাশনার গুণমান" প্লটগুলিতে সহায়তা করে (এমন কিছু যা লোকে মিথ্যা দাবি করে যে আর সক্ষম হয়)। পাইথন শিখার সময় আমার ধারণা ..
শেইলা

15

আপনি আর থেকে tikz কোড জেনারেট করতে পারেন: http://r-forge.r-project.org/projects/tikzdevice/


আমি কেবল দেখতে পেলাম যে প্যাকেজটি CRAN থেকে সরানো হয়েছে।
জিন গুও

এটি প্যাকেজটি এখনও r-forge এ উপলব্ধ বলে মনে হয়। অতিরিক্ত হিসাবে এটি এখানে উপলব্ধ: github.com/Sharpie/RTikZDevice
মিকা

6

এখানে আমার নিজস্ব ল্যাব রিপোর্ট থেকে কিছু's

  • tickzDevicetikzজন্য ইমেজ রফতানিLaTeX
  • মনে রাখবেন, যে নির্দিষ্ট ক্ষেত্রে "\\"হয়ে "\"এবং "$"হয়ে "$\"নিম্নলিখিত আর কোডে হিসাবে:"$z\\frac{a}{b}$" -> "$\z\frac{a}{b}$\"

  • ল্যাটেক্স কোডে টেক্সটগুলি রফতানিযোগ্যও xtable

কোড:

library(reshape2)
library(plyr)
library(ggplot2)
library(systemfit)
library(xtable)
require(graphics)
require(tikzDevice)

setwd("~/DataFolder/")
Lab5p9 <- read.csv (file="~/DataFolder/Lab5part9.csv", comment.char="#")

AR <- subset(Lab5p9,Region == "Forward.Active")

# make sure the data names aren't already in latex format, it interferes with the ggplot ~  # tikzDecice combo
colnames(AR) <- c("$V_{BB}[V]$", "$V_{RB}[V]$" ,  "$V_{RC}[V]$" , "$I_B[\\mu A]$" , "IC" , "$V_{BE}[V]$" , "$V_{CE}[V]$" , "beta" , "$I_E[mA]$")

# make sure the working directory is where you want your tikz file to go
setwd("~/TexImageFolder/")

# export plot as a .tex file in the tikz format
tikz('betaplot.tex', width = 6,height = 3.5,pointsize = 12) #define plot name size and font size

#define plot margin widths
par(mar=c(3,5,3,5)) # The syntax is mar=c(bottom, left, top, right).

ggplot(AR, aes(x=IC, y=beta)) +                                # define data set 
    geom_point(colour="#000000",size=1.5) +                # use points
    geom_smooth(method=loess,span=2) +                     # use smooth
    theme_bw() +                    # no grey background
    xlab("$I_C[mA]$") +                 # x axis label in latex format
    ylab ("$\\beta$") +                 # y axis label in latex format
    theme(axis.title.y=element_text(angle=0)) + # rotate y axis label
    theme(axis.title.x=element_text(vjust=-0.5)) +  # adjust x axis label down
    theme(axis.title.y=element_text(hjust=-0.5)) +  # adjust y axis lable left
    theme(panel.grid.major=element_line(colour="grey80", size=0.5)) +# major grid color
    theme(panel.grid.minor=element_line(colour="grey95", size=0.4)) +# minor grid color 
    scale_x_continuous(minor_breaks=seq(0,9.5,by=0.5)) +# adjust x minor grid spacing
    scale_y_continuous(minor_breaks=seq(170,185,by=0.5)) + # adjust y minor grid spacing
    theme(panel.border=element_rect(colour="black",size=.75))# border color and size

dev.off() # export file and exit tikzDevice function

4

এখানে একটি দুর্দান্ত ফাংশন যা আপনাকে প্লটম্যাথ কার্যকারিতাটি ব্যবহার করতে দেয় তবে অক্ষর মোডের অবজেক্ট হিসাবে সংরক্ষণ করা এক্সপ্রেশনগুলির সাথে। এটি আপনাকে পেস্ট বা নিয়মিত এক্সপ্রেশন ফাংশনগুলি ব্যবহার করে প্রোগ্রামগতভাবে ম্যানিপুলেট করতে দেয়। আমি জিজিপ্লট ব্যবহার করি না তবে এটি সেখানে কাজ করা উচিত:

    express <- function(char.expressions){
       return(parse(text=paste(char.expressions,collapse=";")))
    }
    par(mar=c(6,6,1,1))
    plot(0,0,xlim=sym(),ylim=sym(),xaxt="n",yaxt="n",mgp=c(4,0.2,0),
       xlab="axis(1,(-9:9)/10,tick.labels,las=2,cex.axis=0.8)",
       ylab="axis(2,(-9:9)/10,express(tick.labels),las=1,cex.axis=0.8)")
    tick.labels <- paste("x >=",(-9:9)/10)
    # this is what you get if you just use tick.labels the regular way:
    axis(1,(-9:9)/10,tick.labels,las=2,cex.axis=0.8)
    # but if you express() them... voila!
    axis(2,(-9:9)/10,express(tick.labels),las=1,cex.axis=0.8)

2

আমি কয়েক বছর আগে এটি সরাসরি .pdf এর পরিবর্তে .fig ফর্ম্যাটে আউটপুট করেছিলাম; আপনি লেটেক্স কোড সহ শিরোনাম লিখেন এবং চূড়ান্ত গ্রাফিক ফাইল তৈরি করতে fig2ps বা fig2pdf ব্যবহার করেন। আমাকে যে সেটআপটি করতে হয়েছিল তা 2.5% এর সাথে ভেঙে গেছে; যদি আমাকে আবার এটি করতে হয় তবে আমি পরিবর্তে টিক্জে সন্ধান করব, তবে এটি এখানে অন্য সম্ভাব্য বিকল্প হিসাবে অন্তর্ভুক্ত করছি।

আমি সোয়েভ ব্যবহার করে এটি কীভাবে করেছি তা সম্পর্কে আমার নোটগুলি এখানে: http://www.stat.umn.edu/~arendahl/compting



0

আমার সবেমাত্র একটা কাজ আছে কেউ প্রথমে একটি ইপিএস ফাইল তৈরি করতে পারে, তারপরে এপিএসপিপিএফ টুলটি ব্যবহার করে এটি আবার পিজিএফ-এ রূপান্তর করতে পারে। Http://www.texample.net/tikz/example/eps2pgf/ দেখুন

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.