我正在准备一个大学数学课程的活动,我想在向学生介绍整合时使用它。他们将获得一些功能和这个功能的情节。然后他们将计算定积分并使用一把剪刀切出曲线下面积。在一个比例上,他们将称重这张纸,将显示器上的值除以特定的纸张密度,并将结果与之前计算的值进行比较。为了完成任务,重要的是图中的1个单位将是1个实际厘米。
我尝试用matplotlib和latex做到这一点。但它不太有效。首先,我使用以下python代码生成一个图:
import numpy as np
import matplotlib.pyplot as plt
def cm2inches(value):
inch = 2.54
return value/inch
plt.ioff()
#Direct input
plt.rcParams['text.latex.preamble']=[r"\usepackage{lmodern}"]
#Options
params = {'text.usetex' : True,
'font.size' : 10,
'font.family' : 'lmodern',
'text.latex.unicode': True,
}
plt.rcParams.update(params)
def f(x):
return x*x
h = 0.01
x_min = 0.0
x_max = 21.0
X = np.arange(x_min,x_max,h)
Y = f(X)
fig = plt.figure()
ax = fig.add_subplot(111)
plt.xlabel(r'$x$')
plt.ylabel(r'$y$')
ratio = 400./400 #height/width
fig.set_size_inches(cm2inches(x_max),cm2inches(x_max*ratio))
ax.xaxis.set_tick_params(width=0.3)
ax.yaxis.set_tick_params(width=0.3)
for axis in ['top','bottom','left','right']:
ax.spines[axis].set_linewidth(0.3)
plt.subplots_adjust(bottom=0,right=1,top=1,left=0,wspace=0,hspace=0)
plt.axis([x_min,x_max,x_min,x_max])
plt.plot(X,Y,alpha=0.7,lw=0.5)
plt.grid(lw=0.2)
plt.savefig('0.pdf')
fig = plt.close()
文件0.pdf为210mm x 210mm大。然后我尝试将此文件导入到我的乳胶文档中:
\documentclass[A4,pdftex,10pt]{article}
\usepackage{graphicx}
\usepackage[utf8]{inputenc}
\usepackage[total={210mm,296mm},top=1.6cm,bottom=1cm,left=0cm,right=0cm]{geometry}
\begin{document}
\begin{figure}[H]
\includegraphics{0}
\end{figure}
\end{document}
现在应该是21厘米宽。但右翼存在差距。我能做些什么来完成这项工作?我必须改变dpi吗?