这是matlab2tikz,一个MATLAB(R)脚本,用于将MATLAB图形转换为原生TikZ/ pffs图形。
matlab2tikz支金宝app持大多数MATLAB图形的转换,包括2D和3D图。对于使用第三方软件包构建的地块,您的里程可能会有所不同。
工作流程如下。
a.将matlab2tikz脚本(src/文件夹的内容)放在MATLAB能找到的目录中(例如当前目录)。b.确保您的LaTeX安装中包含软件包
TikZ(又名PGF, >=2.00)和
Pgfplots(> = 1.3)。
在MATLAB中生成你的图。
调用matlab2tikz由
' ' '
> > matlab2tikz ();
' ' '
或
' ' '
> > matlab2tikz(“myfile.tex”);
' ' '
脚本接受许多选项;通过调用帮助来检查它们,
' ' '
> >帮助matlab2tikz
' ' '
有时,MATLAB通过保持周围不可见的对象或将图扩展到超出边界框的太远,使得很难创建匹配的LaTeX图。使用
' ' '
> > cleanfigure;
> > matlab2tikz(“myfile.tex”);
' ' '
首先清除不需要的实体,然后将其转换为TeX。
将' myfile.tex '的内容添加到您的LaTeX源代码中;一个方便的方法是使用' \input{/path/to/myfile.tex} '。还要确保在你的文档头部包含了Pgfplots包:
' ' '
\ documentclass{}条
\ usepackage {pgfplots}
%和可选的(如Pgfplots 1.3):
最新\ pgfplotsset{兼容=}
\ pgfplotsset{情节坐标/数学解析器= false}
\ newlength \ figureheight
\ newlength \ figurewidth
开始\{文档}
输入\ {myfile.tex}
结束\{文档}
' ' '
据报道,以下LaTeX包不兼容:
signalflowdiagramhttp://www.texample.net/tikz/examples/signal-flow-building-blocks/(查看http://sourceforge.net/tracker/?func=detail&aid=3312653&group_id=224188&atid=1060656)。
如果您遇到了错误,有关于matlab2tikz可以做什么的好例子,或者如果您只是想了解更多信息,请访问matlab2tikz的网页https://github.com/matlab2tikz/matlab2tikz.
尼科Schlomer(2021)。matlab2tikz / matlab2tikzGitHub (https://github.com/matlab2tikz/matlab2tikz)。检索.
启发:Matfig2PGF
启发:ExportPngInkscape(文件名,dpi,处理),PerfAndPubTools,tikz输出的箱线图修正,matlab2tikzext,export_tex
是否有办法为输出文件指定一个目录?
是否有可能用matlab2tikz生成一个网络图,它是在Matlab下用graph命令生成的?
你好,
非常好!然而,我对导入的图片有一些问题。在Matlab中,我使用了许多“xline”和“yline”来画水平线和垂直线。但是,在乳胶中,我看不到这些线条。你有什么建议吗?
伟大的代码!如果在tikz中也可以使用简单情节的不透明度,那就太好了。
会喜欢双y轴的功能吗
很不幸的是没有双Y轴的支撑。金宝app但是好的工具
这就跟你问声好!
我与cleanfigure()有问题;
我想要大量减少数据点。我试过使用cleanfigure('targetResolution',PPI,…);
我不知道如何正确使用它。
如果我使用它作为清洁图('300',PPI);出现“未定义函数或变量'PPI'.”错误。
如果我使用它作为清洁图('PPI',300);
警告:忽略未知参数“PPI”
在m2tInputParser中>解析
在cleanfigure中(第64行)
出现了。它似乎什么也没做。
我试过其他几种组合,但没有一种有效。
有人能告诉我怎么正确使用它吗?
就太好了。
这就跟你问声好!效果非常好!干得好!
然而,我发现了以下两个主要问题:
-当使用没有图例的子图时,matlab2tikz自动添加图例,即使没有指定。我看到这个bug在以前的MATLAB版本中被修复了,但是在2019b版本中它仍然出现。
-不支持y金宝appyaxis情节。
这就跟你问声好!抱歉,这对我没用…我有这些错误:
无法识别的函数或变量“getEnvironment”。
matlab2tikz> checkdeprecedenvironment(第6728行)错误
[env, envVersion] = getEnvironment();
matlab2tikz中的错误(第144行)
checkDeprecatedEnvironment (minimalVersion);
你好。约会时间问题有可能很快得到解决吗?这个问题似乎已经悬而未决很久了。
是否可以默认使用公制单位而不是英寸?我的意思是这样的:
开始\[%{轴}
宽= 4.521,
身高= 3.566,
在= {(0.758,0.481)},
只有刻度轴,…
努力感谢! !
Funciono perfectamente。
不错,但是yyaxis还不支持金宝app
非常有用,但出于未知的原因,将标签/图例的部分保存为文本(或者可能只有我这么认为)。
哇,伙计,这东西太有用了!在我发现这个脚本之前,我被经典的\includegraphics{saved graph}所困。谢谢你!
非常感谢。
这是了不起的,工作完美。有一个问题我无法解决:它不能绘制多曲面图的交集。你有解决这个问题的办法吗?
这已经工作了很长一段时间,不幸的是,它已经停止工作,它不会打开文件,我得到一个错误在第535行fid=fileOpenForWrite…
这是非常随机的,没有任何警告,现在是不可用的-有什么解决方案吗?
非常好的有用的函数集。不可替代的。
只有一个问题。为什么选择“extracolors”?
问候,
伟大的东西。
然而,我可能会给出一些建设性的反馈:
-你的m2tInputParser无法正确理解函数调用matlab2tikz('filehandle',fid),并发出警告。可能建议使用matlab的inputParser。
为什么会自动创建图例?有什么办法可以避免这种情况吗?
@Ondrej:这是LaTeX新安装时的一个典型障碍。建议去掉注释的行,而是安装cm-super包,它提供了计算机现代字体的向矢量化版本,以供国际使用(参见https://tex.stackexchange.com/questions/1291/why-are-bitmap-fonts-used-automatically的更多信息)。
我已经克服了这种行为……当您注释“\ uspackage [T1]{fontenc}”一行时。所有标签都是向量化的。
你好,
感谢您提供这么方便易用的工具!有人知道如何修复一个问题与光栅/矢量化字体编译pdf文件?我使用最新版本的matlab2tikz, MATLAB2016b和更新版本的MiKTeX发行版(使用pdflatex编译)。甚至在一个图中,y轴的标签被打印为矢量化字体,但x轴被标记为类似位图的字体。当pdf被放大时,这会导致标签像素化。
你能帮我吗?谢谢。
谢谢你这个好工具。
我刚刚发现了一个针对特殊数据的错误:如果线形图中的x轴只包含整数,而y轴是另一种数据类型(在我的例子中是double类型的少量数字),则y轴的所有值都被强制转换为x数据类型。在我的例子中,所有的y值都设为零。我刚刚实现了一个快速的修复,通过将所有图形数据转换为类型double(在“matlab2tikz”中的1820、1821、2824、1825行中)。函数“getXYZDataFromLine”中m的值如下所示:
试一试
xData = double(get(h, ' xData '));
yData = double(get(h, ' yData '));
抓
%行注释
xData = double(get(h, 'X'));
yData = double(get(h, 'Y'));
结束
也许,有些人也有同样的问题。希望这对你有帮助。
将图保存为Tikz代码而不是用于LaTeX的eps文件的一个非常简洁的优点是可适应的长宽比。
非常好的工具,非常感谢!我目前正在使用m2t为出版物生成漂亮的数字。不幸的是,它似乎很难添加一些箭头的数字。我设法实现了一个小的变通方案,这似乎对我很有效。
首先编写了一个函数,该函数绘制由数据坐标系定义的注释箭头,并将其固定在当前轴上。可以在这里找到:https://de.mathworks.com/matlabcentral/fileexchange/65769-drawarrow-x-y-varargin-
在matlab2tikz。然后,我添加了“case 'arrowshape' -> [m2t, str] = handleObject(m2t, child, @ drawrow);”到函数handleAllChildren。在drawrow函数中,我将"arrowSpec = '{隐身}-{隐身}';"改为"arrowSpec = '{隐身"}-{隐身"}';"。
此外,散点图标记的指定线宽被忽略。在函数drawScatterPlot中添加"[m2t, lineOptions] = getLineOptions(m2t, h);"和"drawOptions = lineOptions;"似乎可以解决这个问题。
因为我真的不是一个专业的程序员,这些改编肯定不会以最佳的方式实现。尽管如此,也许它可以帮助作者进一步改进这个非常有用的工具。
非常好的工具,非常感谢
一个有用的软件包,写得非常好。选项“markerindexes”支持Matlab行对象吗?金宝app
我已经浏览了主文件,它看起来像你的假设是,每一个属于一行的数据点将有一个标记,如果标记样式不是“none”被指定。如果可能的话,是否可以添加对“MarkerIndici金宝appes”选项的支持?我认为这可以插入'getMarkerOptions'功能。然后,您只需为每一行创建两个tikz图。一个包含不具有标记的完整数据集,另一个用于具有标记选项的采样数据集。这可能需要在“drawLine”函数中进行一些修改,以定义两个独立的绘制选项。
这是研究的必需品。
对于写论文和论文非常有用
伟大的工具。
我可以问一个简单的问题吗?我不知道如何防止生成图例时,Matlab绘图没有。兆瓦:
plot(x, y) %无图例
matlab2tikz(文件名);%有传奇
另外,我有一个面积图,我添加线形图。不幸的是,这些线没有添加到输出图中。有解决办法吗?
提前谢谢!
非常有用的代码!谢谢你!
太棒了!
令人惊叹的一段代码。谢谢你!
最后让它成为一个官方的Matlab函数。这样它就得到了官方的支持,并且可以立即交付修复。金宝app例如,它不支持yyaxis函数,这非常令人讨厌金宝app。
在使用这个(很棒的)代码时,我遇到了一个小问题。当x轴是标签时,可以说from:
集(gca, xticklabels,{'这个\ \ ','标签字符\ \ '})
pgfplot文件需要如下一行:
xticklabel风格={}=中心对齐,
使用换行符编译xticklabels(如果标签不包含换行符,则可以正常编译)。Matlab2tikz似乎没有自动添加所需的行。谢谢所有的伟大工作!
你好,
从2016年开始matlab2ti金宝appkz是否支持保存使用极坐标函数绘制的数据?
我可以保存使用'polar'函数绘制的数据,但不能保存'polarplot'。
谢谢,
谢谢你的夸奖。我认为,通过在MATLAB图中添加一个空轴,应该可以生成一个“空”输出文档。然而,我真的很好奇你为什么会问:你有什么特别的追求吗?毕竟:没有内容的情节就像没有啤酒的酒吧;-)
这非常非常好。我从第一张图就爱上了它。
不知道是否可以在图中不画图形的情况下生成tex code。
了不起的工作!作品完美!
这个包是伟大的,非常感谢您所涉及的所有工作!
最近,MATLAB修改了双轴图的语法,不再推荐使用命令plotyy()。当使用yyaxis()代替时(这是他们推荐的),图不再有两个轴对象,而是只有一个。
虽然matlab2tikz在有两个轴对象时工作得很好(可以用ah = findobj(gcf,'Type',' axes ')检索其句柄),但它不再以新格式显示左边的图。你能修好这个吗?那将对我有很大的帮助,谢谢!
非常感谢您的回复。
@Deepak Ingole:这不是一条错误信息,只是一条信息。我们没有正确检查您安装了哪个版本的pgfplot(因为以一种平台无关的方式进行检查非常复杂)。然而,我们确实会检查你的情节是否需要一些最新版本的功能,在这种情况下,我们会相应地调整信息。
之所以有这样的检查,是因为相当多的人只能使用旧版本,这样他们就可以事先知道LaTeX是否会失效。
注意,该消息显示“您将需要1.3或更新的pgfplots”,所以您应该可以使用1.14。
如果这样的信息性消息让您感到困扰,您可以在matlab2tikz的参数中添加" showInfo', false '来抑制这些消息(还可以查看' help matlab2tikz ',因为还有一些选项可以减少对控制台的输出)。
有人能帮我解决一下pgfplots版本的问题吗?我有pgfplots版本1.14,但我仍然得到如下错误:“您将需要pgfplots版本1.3或更新来编译TikZ输出。”
我尝试在MATLAB 2015b。
谢谢你!
谢谢你的更新。我有一些问题与使用输出文件:
1.当一个堆叠的图形(面积图和常规y图)输出到.tikz或.tex文件中,并且我试图在Latex文件中使用该图形时,所有数据点最终都位于与最初绘制时不同的位置。此外,图例消失,我设置的y轴标签的方向(orientation, '0')恢复到默认的90方向。
2.当我尝试使用一般matlab2tikz输出图而不指定任何缩放大小时,我最终得到一个非常大的图,远远超出了页面的限制。我必须总是手动缩放。fig图像到一个更小的图像,除了指定一个缩放值(例如。'width', '0.5\textwidth'),我不需要做的旧版本。
伟大的工作!
据我所知,在冲浪情节中添加“忘记情节”选项是不可能的。我只是添加了下面的行函数“drawSurface”:
如果~ m2t.currentHandleHasLegend
没有找到传说条目。不要在传说中包含情节。
opts = maybeShowInLegend(false, opts);
结束
它暂时解决了问题,但我不确定它是否提供了所有的紧急情况。
了不起的工作!
我使用的是Matlab 2016b。奇怪的是,当我使用matlab2tikz生成。tex时,
1)图中复制复制了xticks的值,而不是xticklabels的值。
2)字体与我在Matlab中选择的不一样。
你能告诉我相关的链接吗?在那里我可以看到这些问题并可能解决它们。
谢谢
神奇的工作。荣誉
使用了很多年了。我真的很喜欢。没有硕士或博士论文甚至是不可想象的。
伟大的包,
当导出透明补丁时(例如从bound Line),补丁的透明度是设置的,但轮廓是绘制的。在设置面alpha时,可以在3030行左右添加以下内容
Opts = opts_add(Opts,'绘制不透明度',sprintf(m2t.ff,0));
@Egon Geerardyn,
我明白了……
到目前为止,你做得很好。所以,再次感谢。
我建议其他想要使用注释的Tikz用户手动修改他们需要的确切的符号。下面的免费应用程序可能会有帮助:GEOGREBRA。
@stefed:我们意识到在R2015b/R2016a中我们不完全支持yyaxis或其金宝app他新结构。您仍然可以尝试plotyy(除非它已从MATLAB的上一个版本中删除)。说实话,我已经一个多月没有打开MATLAB了。
@pankaj singh:这不是matlab2tikz的问题,而是你正在使用的LaTeX编译器的一个基本限制。请在此处阅读相关文档https://github.com/matlab2tikz/matlab2tikz/wiki/TeX-capacity-exceeded,-sorry
@Djibril TOGOLA:我快速浏览了一下关于箭头问题的源代码。这是一个已知的问题:这是我们仍然需要执行的内容。
@Egon Geerardyn……谢谢你!我也遇到了类似@ragheb的内存问题。像. ."TeX容量超过,抱歉[主内存大小=3000000]"我的数字只有401KB。
然后我使用,你的建议“0.3g”,它减少了我的数字大小到203 KB(几乎50%)。所以这对我很有效。再次感谢。
我请求作者请改进他的代码,以便更大的图/图自动转换为乳胶可接受的大小。
谢谢……
你也可以用
\pgfplotsset{scaling x ticks=base 10:0}
\pgfplotsset{缩放y刻度=基数10:0}
在乳胶文档的序言中分别调整xtick标签和ytick标签…你可以按10:1,10:2,等等改变。根据您要求的tick值。
谢谢
不包括蜱虫。为什么? ?
包括蜱虫吗??
很棒的工具,谢谢!
@hannes费舍尔
你会希望这个设置删除千位分隔符:
'x tick label style={/pgf/number format/1000 sep=}'
如果你为x勾标签样式设置了更多的设置,它看起来像这样:
'x tick label style={rotate=90,anchor=east,/pgf/number format/。Cd,固定,固定零填充,精度=0,1000 sep=}'
很好,但是我不支持yyaxis函数,这是MA金宝appTLAB 2016a中的新功能。你能做到吗,求你了?
太棒了!非常感谢。
@Egon Geerardyn,谢谢你的建议,但我很遗憾地告诉你,这也行不通。错误保持不变:
警告:不知道注释'matlab.graphics.shape.Arrow'。
在matlab2tikz中>userWarning(第5955行)
在matlab2tikz>drawAnnotationsHelper中(第3079行)
在matlab2tikz>中的drawAnnotations(第3024行)
在matlab2tikz>saveToFile(第519行)中
在matlab2tikz中(第362行)
我发现解决这个问题的唯一方法是手动在tikz文件中添加注释。这是昂贵的,因为它需要找到精确的坐标。
@Djibril TOGOLA:我认为在即将发布的1.1版本中,这种情况应该不会再发生了。你已经可以从我们的GitHub开发分支获得这个版本(https://github.com/matlab2tikz/matlab2tikz/archive/develop.zip)
该文件不适用于颤动图。我已经能够在版本2014a, 2014b和2016a上重现相同的错误。错误如下:
矩阵维数必须一致。
matlab2tikz>drawQuiverGroup错误(第3661行)
数据(4,:)= x + u;
matlab2tikz>drawHggroup错误(第2466行)
[m2t, str] = drawQuiverGroup(m2t, h);
matlab2tikz>handleAllChildren错误(第654行)
[m2t, str] = drawwhggroup (m2t, child);
matlab2tikz>drawAxes错误(行852)
[m2t, childrenEnvs] = handleAllChildren(m2t, handle);
matlab2tikz>saveToFile错误(第450行)
m2t = drawAxes(m2t, relatiantaxeshandle);
matlab2tikz中的错误(第352行)
saveToFile (m2t支撑材,fileWasOpen);
hw1p1错误(第22行)
matlab2tikz(“hwp1fig.tikz”)
===================================
本来很好的工作!
测试,无头和图形,失败的Mac运行MATLAB版本:9.1.0.390522 (R2016b)预发布。
在最新版本的Matlab (2015b)中,我发现了以下错误:
警告:不知道注释'matlab.graphics.shape.Arrow'。
在matlab2tikz中>userWarning(第5316行)
在以前的Matlab版本中,不会出现这样的错误。那你怎么看?
这个工具是完美的。恭喜你,谢谢你!
@sreenath m.g.:谢谢你的夸奖!如果有重复出现的麻烦弹出(或你觉得每次都有必要的小修改),请不要犹豫在GitHub上报告一个问题,我们将看看可以做什么:-)
"matlab2tikz"在将matlab/gnu八度频域图转换为pgfplots/tikz方面做得很好,节省了大量的时间和精力。轴,刻度,标签,网格等是完美的tikz输出。现在,不需要将变量写入分隔文件,以使用pgfplots进行绘图。在LaTeX中插入tikz代码之前,需要进行一些微小的修改。如果我们从一种格式转换到另一种格式,情况总是如此。一个伟大的计划!由于开发人员(s)。
谢谢你的溢美之词!目前,不支持在输出中的任意位置添加自己的代码。金宝app不过,为了实现这一点,已经计划了一些支持(并且金宝app几乎完全实现了)。你可以在https://github.com/matlab2tikz/matlab2tikz/pull/832.
我非常喜欢这个程序,如果没有它,我的论文将是一个痛苦。是否有一种方法添加这样的输出tex文件从matlab脚本?
\ addplot(颜色=黑色固体,线宽= 1.0 pt,域= 0:1,样品= 11]{x + x ^ 2};
\ addlegendentry{情商。\ ref{情商:方程}};
我的大多数图表是分散数据和函数数据的混合。有时,使用pgfplots本机绘图实用程序绘制函数数据的图形会很好。
@Stefan Schiessl:谢谢你的夸奖!有什么原因让你想把它看作工具箱吗?一年前,我们已经评估过是否将其作为工具箱提供。那时(我不能为现在的情况说话,但我认为几乎没有变化)不可能以体面的方式集成MATLAB工具箱、MathWorks的FileExchange和GitHub(即不存储大的二进制blob文件,这些文件可能会在我们的git库中过时)。当时,这个缺点远远超过了工具箱的少数优点(基本上:一键式安装和分发)。但我们当然愿意重新考虑这一决定。
可靠的工具,为LaTeX创建奇特的情节!
你想把它作为工具箱提供吗?
@Jonas:很多MATLAB中线条的标准属性都被翻译到TikZ中,例如,如果你在MATLAB中设置一个图的“LineWidth”,这将在对应的值上加上“line width=…”。如果你想有一个更低层次的访问来调整TikZ代码(例如,没有MATLAB对应的东西),在未来的版本中这将包括在内。已经有一个实验性的实现https://github.com/matlab2tikz/matlab2tikz/pull/832这很有效。
是否可以向addplot添加属性?某事像
addplot[…,线宽= 2 pt]
线宽= 2 pt
==============
自动不重新打开tikz文件??
@Lairenlakpam Joyprakash Singh:请在我们的GitHub上报告未来的问题。在本例中,您的代码有一些错误:您提供给'floatFormat'的值不正确,它应该是'%0.3f'或'%0.3g'之类的东西。另外,建议将文件名作为第一个参数,而不是最后一个参数)。自旧版本以来,这一点一直没有改变:float格式多年来一直如此。
谢谢。我看了那篇文章后买的https://github.com/matlab2tikz/matlab2tikz/wiki/TeX-capacity-exceeded,-sorry
它工作时,我使用LuaLaTeX。然而,使用其他命令,如cleanfigure()和matlab2tikz('floatFormat','%0.3','myfile.tikz')不能工作,因为后面只绘制轴[没有波形]。
我的MATLAB代码是:
[信号,Fs, nbits] = wavread(“OSR_us_000_0010_8k.wav”);
情节(信号);
% wavplay(信号,Fs);%用于基于Windows的计算机
声音(信号,Fs);%用于基于Mac的计算机
wav源文件来自开放语音库,位于:http://www.voiptroubleshooter.com/open_speech/american/OSR_us_000_0010_8k.wav
@Lairenlakpam Joyprakash Singh:你可能想在我们的GitHub页面报告你正在经历的问题https://github.com/matlab2tikz/matlab2tikz并解释了我们如何复制它们。
早期版本包含三个文件,即matlab2tikz。米,matlab2tikzInputParser。米,和更新。m,在2014年在正弦波和其他的少点图上工作得很漂亮,但现在我不能使用早期版本/甚至这个最新版本从MATLAB导出语音信号图到pgf:-(
早期版本包含三个文件,即matlab2tikz。米,matlab2tikzInputParser。米,和更新。m,工作漂亮的少点正弦波图和其他2014年,但现在我不能更早的版本,甚至这个最新版本使创建语音图从MATLAB到pgf:-(
正是我所需要的。继续努力吧
非常有用,工作非常好。做得好!非常感谢开发人员一直保持更新。
@Ingrid:目前不可能为不同的子图传递不同的参数。对于你的问题,我有几个解金宝搏官方网站决方案:
我认为它应该可以调用cleanfigure通过传递一个轴句柄而不是图句柄。所以如果你用不同的参数为每个子图调用cleanfigure,我认为这应该可以做到。
(2)上述方法无效的;将子图分割到不同的图上,在每个图上运行cleanfigure,然后将这些图重新组合为一个图中的子图(在FileExchange和StackOverflow上有一些函数可以帮助完成这些步骤)。
(3)在GitHub上的开发分支中,有一个新的简化算法,它使用子图的大小(和分辨率等)来简化你的轨迹。这应该比这里的版本更可靠,使用单个图形范围的设置可能会更好。
我的内存快用完了,所以我需要应用干净的图形。然而,我的不同子图的尺度是不一样的,所以我需要对每个子图应用不同的精度,而不是对所有子图使用一个相同的值-我如何实现这一点??
@Ingrid:这些更改还没有传播到你可以在这里下载的版本中。如果您想尝试这些新功能,请下载https://github.com/matlab2tikz/matlab2tikz/archive/develop.zip代替。
根据这一https://github.com/matlab2tikz/matlab2tikz/pull/773#discussion-diff-39700006R1078有一个传奇而不是两个传奇应该是固定的策略,但我仍然得到两个传奇
这个剧本太棒了。这是我这辈子见过的最漂亮的科学报告。再接再厉!
数字格式可以在LaTeX文档中使用“pgf/数字格式”选项来设置。更多信息可参阅TikZ手册(https://www.ctan.org/pkg/pgf),但pgfplotstable手册(https://www.ctan.org/pkg/pgfplotstable)包含大量的信息。
大家好,
谢谢你的工具。这对我帮助很大,情节看起来也很好。但我花了好几个小时都在寻找解决问题的方法,但都没有成功。
这里是:
我只想在没有任何东西的情况下服务数千人,我不想要这样的数字:2000。我只想这样,2000年。
我要在脚本的哪一行修改它?
谢谢你!
@Raph:谢谢你报告关于markerEdgeColor的错误!我们会解决这个问题的。
不幸的是,散点图的大小和颜色都在变化,这是目前不支持的。金宝app问题是,两者在pgfplot中使用相同的机制进行设置(即元数据),因此指定一个会与另一个发生冲突。我认为可能有办法解决这个问题,但要实现它可能需要相当长的时间。
当散点的颜色由色度图设置时,散点标记的缩放也不能工作。当所有的散点都具有相同的颜色时,它工作得很好。
很棒的工具,非常感谢。
使用scatter()我得到了错误
未定义函数或变量“markerEdgeColor”。
>
getScatterOptsColormap(第3237行)
> [m2t, color] = getColor(m2t, h, markerEdgeColor,'patch');
添加一行
> markerEdgeColor = get(h, ' markerEdgeColor ');
有帮助,也许你可以包括这一点或提供一个更好的解决方案。
x轴上的日期时间值已添加到我们的开发版本的MATLAB 2014b和更新版本中。你可以通过在GitHub上下载“develop”分支来获得这个版本(否则,它也会在这里发布,但我不能保证任何日期)。
这个工具对于在Latex文件中创建漂亮的情节非常有帮助-谢谢!
然而,我遇到了一个问题:我有一个以日期时间值为x轴的图。当将图导出到tikz文件时,只显示数值而不显示正确的日期。这个问题能解决吗?
@Andries:我们确实支持等金宝app高线图:-)(请确保您有1.0.0或更新版本)。这些情节中的许多应该是没有问题的,但我不得不承认,有一些部分还没有执行https://github.com/matlab2tikz/matlab2tikz/issues/723.但这些肯定会在未来的版本中得到解决。
伟大的文件,但请支持等高线情节!金宝app
谢谢信息大多!
@Tina Fohrmann:这只是一个警告,因为matlab2tikz无法确定以物理单位表示的图形的物理大小。你可以使用"warning off MATLAB2TIKZ:UnknownPhysicalUnit"关闭这个警告。但可能最好的解决方案是将单位重置为物理单位:"set(figureHandle, ' units ', 'inch')"(或您喜欢的任何其他MATLAB单元)在您执行了您提供的代码之后。然后MATLAB负责转换。
谢谢你的好文件!
我得到以下错误
警告:不能转换单位“规范化”。使用转换因子1。
当调整图形大小时:
集(figureHandle,“单位”,“归一化”);
set(figureHandle,'Position',[0 0 0.6 0.75]);
我能做些什么吗?
@Sebastian Bomberg:我在我们的GitHub追踪器上添加了这个功能请求。
@Selwyn:我们确实对3D直方图有一些支持,但金宝app它非常有限。在你提到的链接中,Nico也展示了一个3D直方图的例子。然而,正如你所看到的https://github.com/matlab2tikz/matlab2tikz/issues/732,由于多种原因,目前很难完全支持这些数据。金宝app
感谢Nico的贡献!
不过,我在iso轮廓方面遇到了一个小问题。
显然,高定系列的线规格被忽略了。
%开始代码
Z =山峰();
次要情节(1、2、1)
hPC = pcolor (Z);
高性能计算。FaceColor =的插值函数;
高性能计算。EdgeColor =的插值函数;
高性能计算。线型= '没有';
保存所有;
contour(Z, '-k', 'ShowText', 'on');
推迟;
次要情节(1、2、2)
contour(Z, '-k', 'ShowText', 'on');
matlab2tikz(“pcolorAndContour.tex”、“独立”,真正的);
%结束代码
反线应该显示为黑色,但绘制与pcolor中的补丁相同的色彩图。因此你看不到它们。这在第二副情节中变得更加清楚。
我真的很感激你的帮助。
塞巴斯蒂安。
伟大的代码!一直使用它。很多谢谢!
我想建议支持histrogram2对象。金宝app更多信息请访问:http://tex.stackexchange.com/questions/52987/3-dimensional-histogram-in-pgfplots.
谢谢你的礼物!
@E。Ch3yn3t:你可能想尝试“cleanfigure”函数,它提供了清理你的数据。如果这还不能清除很多nan,请在github上提交特性请求https://github.com/matlab2tikz/matlab2tikz/issues
优秀的计划!
一个给定的图可能包含多个NaN值。
我想知道是否有可能在这个脚本中实现一个方法,自动从创建的tikz文件中删除NaN值。目标是减少创建的文件的大小,并增加其可读性。
这很有可能,是的。我们将在即将发布的版本中更清楚地传达这种依赖关系。
附录:可能是在图的标题包含LaTeX标记时。
非常棒的软件。但是,您的最小工作示例是否可能需要包含amsmath-包?
很棒的工作……
工作好了!伟大的工作!cleanfigure()函数也非常棒
@redfixie:你能在我们的GitHub上报告这个吗https://github.com/matlab2tikz/matlab2tikz/issues(连同一小段MATLAB代码来再现这个问题,以及matlab2tikz和MATLAB的版本)。谢谢!
嗨,我有个小问题。当我使用matlab2tikz转换一个堆叠柱状图时,LaTek只显示了整个柱状图的最终颜色,而不是全部颜色。任何建议吗?
Olivier的问题在开发版本中得到了解决。
你好奥利维尔,你能报道一下这个吗https://github.com/matlab2tikz/matlab2tikz/issues用最少的代码示例再现问题?
工作非常好,除了符号|在标签,我需要编辑。tex和替换|由$|$。还有别的方法吗?
太棒了。非常感谢你的工具。
再次感谢你的伟大工具,Nico Schlömer。我只有一个请求。是否可以自动检查一个图是否由ternplot函数生成,然后使用pgfplots的ternaryaxis特性将其导出到tikz ?
@Janis直方图支持已添加到开发金宝app分支中,将成为下一个版本的一部分。
看起来R2014b中引入的新的直方图特性还不支持:金宝app
使用matlab2tikz>handleAllChildren错误(第664行)
我不知道如何处理这个对象:直方图
@dsaf R2014b (HG2)的这个问题已经在开发分支中修复,将是下一个版本的一部分。
以下是这个问题的最小版本:
加载用户定义的色彩映射矩阵
图一=图(1);
显示亮度图像(log10 (rand (200200)));
colorbar;
这将在tikzpic中创建任何颜色条。
matlab2tikz(“figurehandle”,应该“test.tex”);
@Thomas:请提交关于https://github.com/matlab2tikz/matlab2tikz/issues提供一个重现错误的最小示例(包括所用的Matlab和matlab2tikz版本)。
@dsaf:你能详细说明一下你说的“没有成功”是什么意思吗?
MATLAB R2014b (<=> colorbar对象而不是axes对象)的新的颜色栏功能还不支持,对吗?金宝app
我试图保存一个带有用户定义的色彩图的图像,但它没有工作…
伟大的工具,它使工作更容易!谢谢!
但在一个大的图中,包括一个颜色条,我得到一个错误,已经报告在2013/05/12。
使用matlab2tikz>patchcolor2xcolor错误(第3699行)
不知道如何处理颜色模型'interp'。
matlab2tikz>getColor错误(第3646行)
[m2t, xcolor] = patchcolor2xcolor(m2t, color, handle);
matlab2tikz>drawPatch错误(第1786行)
[m2t, xEdgeColor] = getColor(m2t, handle, edgeColor, 'patch');
matlab2tikz>handleAllChildren错误(第620行)
[m2t, str] = drawPatch(m2t, child);
matlab2tikz>drawAxes错误(第838行)
[m2t, childrenEnvs] = handleAllChildren(m2t, handle);
matlab2tikz>saveToFile错误(第438行)
m2t = drawAxes(m2t, relatiantaxeshandle);
matlab2tikz中的错误(第349行)
saveToFile (m2t支撑材,fileWasOpen);
我用的是Matlab R2013a。也许有人能帮忙?
@Ragheb:我们的维基上也有一些关于如何解决你的问题的信息https://github.com/matlab2tikz/matlab2tikz/wiki/TeX-capacity-exceeded,-sorry
嗨,他,
当使用大型PGF或TIKZ图形时,要增加内存,对于MikTEx使用命令行:
initexmf——edit-config-file =乳胶
打开一个编辑器,您可以在其中放置新值。如。
main_memory = 5000000
extra_mem_bot = 5000000
font_mem_size = 5000000
pool_size = 5000000
buf_size = 5000000
然后调用next来更新latex格式文件。
initexmf——转储=乳胶
对于PDFlatex,在两种情况下都用PDFlatex替换乳胶
为什么Latex不能编译大的tikz文件?
我已经尝试matlab2tikz从matlab的三维球体图形,它工作得很好,因为相应的tikz文件只有50KB。然而,我想包含在tex文件中的数字经常超过100MB!Latex拒绝编译这样的文件给我的错误:“TeX容量超过,对不起[主内存大小=5000000]”。
你能告诉我如何解决那个问题吗?
@Pepijn,我也报道了你的问题:
https://github.com/nschloe/matlab2tikz/issues/435
@Konrad斯特尔,
这一点已经报道过了,并且将会得到改进。看到https://github.com/nschloe/matlab2tikz/issues/377
这就跟你问声好!
在新版本中,它总是添加:
每个外x轴/。添加风格={白15 !黑},
每个x刻度标签/。附加风格={字体={\颜色白色,15 !黑色}}
到德州代码(也为y轴),即使我使用
甘氨胆酸ax =;
斧子。XColor = '黑色';
斧子。YColor = '黑色';
斧子。ZColor = '黑色';
在matlab代码。
有办法改变这种情况吗?我不想要灰色轴也不想每次都手动更改。
@Monika:在2014b之前的版本中,大多数注释都是支持的。金宝app在2014b,我们还没有实施它们。
它在Matlab金宝app中支持注释吗?它不会绘制箭头或文本框
它在Matlab金宝app中支持注释吗?它不会绘制箭头或文本框
它是否支持来自M金宝appatlab的注释?它不会绘制任何箭头或文本框。
@arnold:我让Nico把这个链接放在顶部,以减少这里的错误报告数量,并在Github上获得更多反馈。
你可以从更新的历史中看到,我们很少有新的版本(最后一个是在4月),我们非常注意发布它们(我同意你的观点,这样的列表不应该被污染,我们尽量不污染)。
最后一次更新是在我们发布0.5版本的时候。但是自从FileExchange现在与我们在Github上的主分支集成后,什么是更新就变得不那么清楚了:Nico更新这个页面时不涉及手动过程。与Mathworks一起,我们目前正在寻找将GitHub和FileExchange结合起来的好方法,并以更清晰的方式提供新版本。无论如何:当这个页面没有被改变在一个重要的方式,代码已经:-)
嗨,尼克,
非常有用的工具,非常感谢。
一个非常不寻常的评论/问题:我对你一直在进行的所有“更新”感到困惑。我尝试保持我使用的文件更新,因此我定期检查这个网站。你已经“更新”了几次投稿,借口是“更突出地展示投稿链接”。我猜你这样做不只是为了把这个文件推上“最新”列表,但我永远找不到更新。
我想我不是唯一一个花时间检查你在代码中更新的东西的人。就像代码一样好,如果每个人都这样做,文件交换上的“最近更新”列表就变得相当无用,或者你想把每个人都移动到github:)
我用过的最有用的脚本,很棒的工作:)
@Vegar: m2t使用在您的图中设置的plot单位,默认情况下是英寸。你可以更改它们,或者手动为它们提供' width '和' height '选项(在那里你也可以使用' \textwidth ', ' \columnwidth '等)。
如果你提供' strictFontSize '选项,字体大小是受尊重的。
@Jan:“轮廓”在MATLAB 2014b或更高版本的m2t v0.5上被翻译为pgfplots“轮廓”。(不过,在这种情况下还不支持' contourf ')。金宝app
投稿太棒了!然而,在默认情况下,它以英寸为单位定义了图形的宽度和高度,符合美国的纸张标准,而不是全球更常见的ISO A4。
我是否可以建议将情节宽度改为\textwidth的一小部分?
天才! !
太棒了!不过还需要更多的选择。
1.指定坐标轴、图例等的字体大小。
2.当给定的Matlab图中有多个轴时,这些轴在latex中没有适当的间隔。
3.选项在tikzpicture环境中包含额外的代码。
我一直在用这个!
不错的工作
非常好。
但有两个小问题:
第一个问题:是否支持等高线图?金宝app我指的是pgfplot的轮廓。如果我使用'contour(peaks(20),10);',然后用m2t导出它,只使用面积图。
第二个:如果我用“contourf”,标记是看不见的,标记标签就在那里。那是虫子吗?
谢谢你!
我希望任何人都能回答这个问题。这句话很好,如果我画一个数字,然后只是改变它为tikz。
但是当我试图在图上添加一些个性化的文本时,出现了一个问题,当我试图将它包括在tex文件中,它说错误,比如
包pgfplots错误:[mesh/rows=2,mesh/cols=0]的参数假设p为0
但实际上我得到了N = 1分!数据矩阵似乎不完整
谢谢!
我有一个自定义定位的颜色栏,脚本还没有说明这一点。这是你将来会考虑的事情吗?
对于2014b版本,它有问题。例如,图例消失了。
干杯
感谢这个优秀的脚本!
我遇到了两个问题,我试图通过修改代码来解决它们(慎用:)
(我正在运行R2013a和pdflatex)
1)多行图例条目:
最小工作示例:在matlab中,运行:
----
图;情节(1:10,1:10);legend(sprintf('这是一个\n多行传说条目'))
Matlab2tikz ('filename', 'm2ttest.tex', 'width', '0.8\columnwidth', 'height', '5cm')
----
乳胶:
——头
\ usepackage {pgfplots}
最新\ pgfplotsset{兼容=}
\ pgfplotsset{情节坐标/数学解析器= false}
\ usetikzlibrary {plotmarks}
之后,\{文档}——开始
开始\{图}
输入\ {m2ttest.tex}
\标题{TIKZ测试}
结束\{图}
----------------
结果:图例条目出现在一行中。在m2ttest.tex中有一个换行符,该换行符被latex忽略。
我试图解决这个问题:
a)函数prettyPrint的变化,第4840行(见底部的diff)
B)第731行的更改(见底部的diff):添加"[align=left]到"\addlegendentry"。如果没有这个,如果在图例条目中使用了换行符“\\”,我的latex就会终止并出现错误。我看到matlab2tikz将传说样式设置为“传说cell align=left”。为什么需要额外的显式规范“align=left”是奇怪的……也许我做错了什么?
2)图例的定位:
当我将图例移动到,比如说,图形的左下方(在gui中),它并不(确切地)出现在latex中的这个位置。问题似乎是在matlab中,图例位置是相对于图的,而在tikzpicture中,它是相对于轴的。从第3646行开始,matlab2tikz似乎试图确定matlab位置是相对于图还是轴(单位=“归一化”或“像素”)。在我的例子中,单位是“规范化”的,但位置仍然相对于图形。所以我只是修改了脚本,使其总是像“像素”一样工作(将代码从“case‘pixels’”复制到“case‘normalized’”)。在那之后,传说定位就像预期的那样工作了。
我在matlab2tikz.m中修改的:
diff matlab2tikz.m。源自matlab2tikz.m
713年c713
< sprintf(‘\ \ addlegendentry {% s}。\ n \ n”,加入(m2t, c , '\\'))];% #好吧
---
> sprintf(“\ \ addlegendentry [align =左]{% s}; \ n \ n”,加入(m2t, c , '\\'))];% #好吧
3646 c3646, 3651
< position = legendPos(1:2);
---
> %位置= legendPos(1:2);
计算图例的位置,w.r.t.坐标轴。
> axesPos = get(m2t.currentHandles.)gca,“位置”);
默认情况下,坐标轴的位置是根据图形w.r.t.给出的,
> %,传说也是。
> position = (legendPos(1:2)-axesPos(1:2)) ./ axesPos(3:4);
4840 c4845, 4848
<
---
既然字符串中的所有字符数组都是一维的,我们还需要以换行符分隔字符串
> strings = cellfun(@(x)strsplit(x, sprintf('\n')), strings, 'UniformOutput', false);
>字符串=[字符串{:}];
>
@Kine
在运行脚本之前,在脚本末尾添加这些行。对我来说确实有用
Axoptions ={' scaling x ticks = false',…
'x tick标签样式={/pgf/数字格式/。Cd,固定,固定零位,精度=3}'};
matlab2tikz(‘mypicture.tex’,‘extraAxisOptions axoptions);
亲爱的作者,
在测试您的包时,它发现它非常有趣。然而,我有时会遇到这个错误:
"试图访问CData(:,1);index out of bounds因为大小(CData)=[0,0]。
".
你能告诉我发生了什么事吗?
非常感谢,真的很有用
非常有用,谢谢!
优秀的方案。谢谢你的工作。
这就跟你问声好!
很好的工具。我只是尝试转换一个使用散点(X,Y,[],C)来画不同颜色的圆。
在getColor(m2t,句柄,颜色,模式)函数中似乎有一个bug(或者特性还没有实现)。它似乎不能处理多种颜色。
一个简单的例子是:
Scatter ([1,2], [1,2], [], [0 0 0;0 1 0]);
matlab2tikz(“test.tikz”);
这会导致一个错误。你觉得你能解决吗?绝对很棒;)
这就跟你问声好!
喜欢这些数字的样子!但我有一个问题,有没有办法求出轴的极限?例如,我正在制作一个数值为0.005,0.006…在x轴上,当我把数字放到Latex中,我得到了0.5 * 10^{-2},有什么办法可以让它恢复到原来的样子吗?是否有办法使y极限是特定的值?
即时五星为您,因为它不仅非常强大,如前所述,而且非常容易使用。谢谢你!
从现在开始,当在Matlab/LaTeX中工作时,这是一个必要的工具。不过,当引入TeX符号或代码(比如P_e)时,在图的图例中出现了一些问题,tikz文件将其作为纯文本处理,但我认为它可以修复(我在生成的文件中手动执行)。优秀的文件,谢谢。
在你的MATLAB路径中有一个非常有用的小工具。:)
首先,非常好的工具!它产生了最美丽的情节与TeX结合到目前为止!
只是一个小问题,为了匹配德国排版,我将所有的点分隔符替换为逗号分隔符-之前-使用matlab2tikz。
这对于轴标签、标题和标记标签来说非常有效。但关于图例条目似乎有一个问题:
我的一些legendentries包含由点分隔的数字,因为它们是使用num2str()动态创建的。它们与一些描述性的文字结合在一起。所以一个传说可能是:
$\lambda = 1.5$, $Delta = 3.4$
在用逗号替换这些点之后,它可以是
$\lambda = 1,5$, $Delta = 3,4$
或
\λ= 1{}5美元,δ= 3{}4美元(我试过两种类型)。
在图上使用matlab2tikz后,legendentry中“原来的”逗号被保留,而分隔符逗号再次被点分隔符替换…
我希望你能理解我的意思,也许你对解决这个问题也有一些建议
问候
将externalData默认设置为true是一个错误;一个新的版本将很快发布,修复这个问题。
@Felix
“ExternalData”,假的
或rtfm
我认为编译器正在抱怨。tsv文件中缺少“\\”
嘿,
我今天更新到0.4.5版本,创建了几个。tsv文件,而不是一个大的。tikz文件。
这对你们中的许多人来说可能是有利的,但我宁愿要一个大的。tikz文件。
有办法改回去吗?
我发现了问题所在:
Ubuntu的texlive版本仍然使用pgfplots 1.8,但是对于最新的matlab2tikz文件,pgfplots 1.9是必要的(对于带有错误栏的plot)。
在ubuntu中安装pgfplots 1.9有点痛苦,但是这样做之后它又可以正常工作了。
也许在下一个更新中会有一个提示,即需要另一个pgfplots版本。
嘿,
我只是喜欢matlab2tikz,谢谢文件!
不幸的是,我现在有一个错误栏的问题:
在旧版本v0.4.2中,点和杆被定义为(x,y)+-(xerr,yerr)... .
现在在v0.4.4版本中,它是(x,y) += (xerrup,yerrup) -= (xerrdown,yerrdown)。我在texmaker中编译那个文件不工作。有人有同样的问题或者知道如何解决吗?
谢谢你的帮助。
LaTex干得好。
谢谢
这是一个如此伟大的补充,任何人都使用MATLAB和LaTeX!给你五颗星。*****
关于我今天遇到的小问题:
我在使用cleanfigure时得到一个警告。
警告:忽略未知参数“minimumPointsDistance”——
这是从函数cleanfigure()的帮助下复制的精确实参。当使用“minimumPointDistance”(“点”而不是“点”)时,我不会得到错误。我只是想让你知道!
我认为在使用'figurewidth'变量在Latex中设置图形大小时,在导出条形图时存在一个问题。条的宽度设置为与'figurewidth'相同的值。这使得栅栏太宽了。
@Anfänger听起来像是一个bug。如果你想修复它,请在<https://github.com/nschloe/matlab2tikz/issues?state=open>用一个最小的MATLAB示例强调错误行为。
只是对我的问题的一个小修正:通过标签,我的意思是,当我把轮廓标签放在框中,框被matlab2tikz忽略。例如,如果我切换轴位置(x轴在顶部),标签仍然由matlab2tikz写入底部
@Nico Schömer,非常感谢你的工作。如果你允许,我想问为什么m2t忽略例如标签,添加的文本…等?
@lyxicon
1.有一个'extraAxisOptions'选项。如果这对您不起作用,您可以在<中提交一个错误。https://github.com/nschloe/matlab2tikz/issues?state=open>。
2.有cleanfigure()可以帮你。
3.这是可能的,你可能是第一个使用m2t的阶跃/脉冲图的人。如果您可以提交一个错误并提供最小的失败示例,那就太好了。
如何使用cleanfigure()函数?我需要减少我的图中的数据点的数量。我运行cleanfigure(),但没有任何变化。有人能帮帮我吗?
太酷了!谢谢你!
很神奇的提交。我只遇到了一些小问题:
1.没有办法为每个子图提供额外的轴选项(例如高度和宽度)。当您有几个具有公共x轴的垂直堆叠子图,并且希望从所有子图中删除x轴标签(除了底部的那个),或者希望每个子图的高度不同时,尤其需要这样做。
2.它需要一个更好(更聪明)的下采样算法。目前,当你有大量的点时,很容易达到TeX内存的限制http://tex.stackexchange.com/questions/59562/matlab2tikz-tex-out-of-memory/66831#66831)
3.它不能正确地转换由step()、impulse()函数和类似函数自动生成的时间图(来自控制系统工具箱)
这是非常酷的事情,结果看起来真的比png图像好。
太好了!事实上,这确实节省了很多时间和工作。我是tikz的新手,想问一下,有没有一种方法可以同时生成。*tikz和*.pdf文件?不需要在外部编辑器中打开。*tikz文件并生成PDF版本。
非常实用,效果看起来也很棒。
是否有可能改变代码,使“点元最小”和“点元最大”的值总是保存,以便在我选择添加一个颜色条以后,它将显示正确的比例?
@Maria把你的问题提交到https://github.com/nschloe/matlab2tikz/issues?state=open通过一些简单的示例代码突出显示出了什么问题,可以更容易地解决问题。
绝对的好工具!
空白问题(参见Christoph, 2013年3月25日)还没有完全修复,不过(0.4.0版本):
在“defineccolor”行周围,应该放置更多的“%”:
第555行:在前面多放一个%%
m2t.content。Colors = sprintf('%%\n%%定义自定义颜色\n');
562行:
m2t.content。颜色= [m2t.content。颜色sprintf(“% % \ n”)];
感谢在未来的更新中添加这一点!伟大的工作!
我喜欢这个工具,但是minimumPointsDistance选项怎么了?我到处都找不到……它在当前版本中被删除了吗?有人知道可以在matlab2tikz接管之前减少数据点的工具吗?
谢谢
非常好的包!很多谢谢!
我面临着一些问题,虽然与子图有关。
1)子图中的错误条未打印。我收到以下警告:
"警告:错误条已丢弃(待实现)。"
2)我正在使用补品。为子图生成超x/y标签。
当使用matlab2tikz时,是否有办法保持suplabel在图中?现在当我把人物插入乳胶中时,标签不见了。
3)我的最后一个问题是保持传说在给定的位置。有什么建议吗?
非常感谢任何帮助!
首先,我非常感谢你送我这么棒的包裹。虽然我发现了一个小错误。
当我使用:
1 = randn (10000);
b = + 2;
图;保存所有;
嘘(100);
嘘(b, 100);
h = findobj(“属性”、“FaceColor”);
集(h(1),“FaceColor”,[1 0 0],“EdgeColor”,[0.5 0 0]);
集(h(2),“FaceColor”,(0 0 1),“EdgeColor”,[0 0 0.5]);
uistack (h(2),“顶级”)
传奇(“正常”、“级联”);
matlab2tikz(“test.tex”、“宽”、“0.7 \ textwidth”,“showInfo”,假);
如果我渲染test.tex, Normal和Cascading的图例将是暗红色。它们应该是蓝色和红色的。
@Gregor你必须指定一个合适的格式。试着“% .3g”。
了不起的包,但我有一个问题与'floatFormat'参数。
如果我不设置这个参数,所有的数据点都会被写入结果*.tex文件中——但是它太大了。
所以我像这样设置精度:
matlab2tikz('myfile.tex', 'floatFormat', '3');
在输出中没有数据点被写入,在本例中只有'3。
这是一个问题吗?还是用错误的方式使用了这个参数?谢谢你!
我希望你能帮助我。
非常棒的包装,非常感谢!但我有个小问题无法解决。我需要添加“mark repeat=25”作为“\addplot”选项列表中的额外参数。但是我不知道怎么做。'extraTikzpictureSettings'把它放在\addplot环境之前。是否需要添加一个输入变量来解决这个问题?再次感谢!
你好,
首先:非常好的教程!感谢它。
我有一个tikz文件的问题,我不知道如何修复它。
y轴的标记与y轴上的刻度重叠。原因是刻度的值非常小,乘以10^-3。不是10^-3在上面(在x轴上),刻度的所有值都分别与它相乘,例如:
1 * 10 ^ 3
8 * 10 ^ 4
6 * 10 ^ 4
...
所以标签和第一列的值重叠。我不明白为什么在x轴上是正确的而在y轴上不是。在我的matlab图中,一切正常。
我希望我的解释能让人理解,希望有人能解决这个问题。
好的,经过一天的搜索,我想我找到了问题....我有一个老版本的pgfplots…
我想我和阿恩有同样的问题……
出于某种原因,我得到的错误包括用matlab2tikz创建的tikz文件到LateX(但其他tikfile)。我使用MATLAB R2012a, texmaker和ubuntu。
问题似乎在tikz文件的表中。
我得到的一些错误:(line with};在桌子的尽头)
!丢失\endcsname插入<再次读取>\protect}
额外! \ endcsname。\ pgfutil@ifundefind . .\ ifx \ csname # 1 \ endcsname \ \ expandafter \ pgfut放松…}
换行符的使用不符合它的定义
@firstoftwo参数有一个额外的}
如果有人帮忙,我会非常感激的!
使用matlab2tikz>patchcolor2xcolor错误(第3523行)
不知道如何处理颜色模型'interp'。
matlab2tikz>getColor错误(第3472行)
[m2t, xcolor] = patchcolor2xcolor(m2t, color, handle);
matlab2tikz>drawPatch错误(行1982)
[m2t, xFaceColor] = getColor(m2t, handle, faceColor, 'patch');
matlab2tikz>handleAllChildren错误(第640行)
[m2t, str] = drawPatch(m2t, child);
matlab2tikz>drawAxes错误(第829行)
[m2t, childrenEnvs] = handleAllChildren(m2t, handle);
matlab2tikz>saveToFile错误(第487行)
m2t = drawAxes(m2t, relatiantaxeshandles (ix), alignmentOptions(ix));
matlab2tikz中的错误(第396行)
saveToFile (m2t支撑材,fileWasOpen);
使用matlab2tikz>handleAllChildren错误(第674行)
我不知道怎么处理这个东西:光
matlab2tikz>drawAxes错误(第829行)
[m2t, childrenEnvs] = handleAllChildren(m2t, handle);
matlab2tikz>saveToFile错误(第487行)
m2t = drawAxes(m2t, relatiantaxeshandles (ix), alignmentOptions(ix));
matlab2tikz中的错误(第396行)
saveToFile (m2t支撑材,fileWasOpen);
尼克,谢谢你的投稿,我相信很多人都从中受益。
我有和Etienne一样的问题,如下:Matlab补丁在3D图中的排序不正确,需要手动修复,对于大的图形可能无法修复。
非常有用的。但如何保持字体名称/颜色/大小轴或数字标题?
我想使用这个不错的脚本,但由于某些原因,我不能使它工作。我使用Matlab R2009b在ubuntu下与Kile。即使使用基本的代码,它也不能工作。
我得到以下错误:
[PDFLaTeX]结束,退出代码1
./testpic.tex:1005丢失\endcsname插入};
。/ testpic.tex:额外\ endcsname};
谁能帮忙吗?
Matlab2Tikz是一个很棒的工具!感谢楼主的分享!
你做得很好,对我帮助很大。然而,有一件小事你可能想在未来的版本中改变(目前不使用0.3.2):如果一个人试图转换一个等高线(f)图并将结果包含在一个tex文件中,他会在对齐方面遇到麻烦。这是由结果文件的序言,一些空行和\definecolor命令引起的。在我的latex分布(miktex)中,每一个换行符都会导致向右的一个小移动(可能是一个“空白”被解释),随着更多的颜色被定义,图形也会进一步移动。为了避免这种行为,我在\definecolor设置的地方添加了%%,因此它读取为:sprintf('\\definecolor{%s}{rgb}{%.15g,%.15g,%.15g}%%\n'
为了得到一个非常紧凑的边界框,序言中的其他一些行可能也需要%-符号。
如果你需要,我可以给你发一个简单的例子来说明这个问题。
最好的问候,
克里斯托弗。
@Georg我当然可以让这成为一个选择。如果你可以在<https://github.com/nschloe/matlab2tikz/issues>,再解释一下需要什么格式,那就太好了。
工作非常棒-我只有一个小建议:你可以转换的RGB值的情节到CMYK时,定义自定义颜色?当使用pdflatex时,这已被证明对Adobe Reader中的正确颜色显示是必要的,这似乎是一个众所周知的问题
@Karthick你可以用“latex”(生成ps文档)和“pdflatex”来使用生成的文件,字体就像在latex文档中一样,你可以在生成后自定义你的绘图,可能还有其他一些原因。总而言之,当你比较MATLAB生成的PDF和matlab2tikz编译的输出时,你会注意到质量上的明显差异。
这的确是一个很好的方案。但它有什么优势,从“打印为pdf”选项在matlab?
亲爱的妮可
我试图转换一个有许多补丁的3d图,但顺序是不正确的。一些本该出现在其他补丁后面的补丁,却出现在前面。我不确定这是否属于tikz问题,但我想知道你是否也遇到过这种情况。任何帮助都将不胜感激。
@H VH Ayala:试试matlab2tikz('strict', true)。这应该把刻度放在MATLAB中有刻度的地方。
你好,
如何在m2t上只设置预定义的xticks ?
在MATLAB中使用stem(.)命令,人们只会对xticks中有数据关联的值感兴趣。
问候
@Anke目前仅使用m2t是不可能实现的,我甚至不建议将其用于线状图——毕竟,m2t无法区分哪些数据对你来说重要,哪些数据可以剥离。我建议您手动减少3D图中的数据点数量,直到TeX编译时间变得可以承受为止。
很好的工具,谢谢!只有一个问题:我如何使用'minimumPointsDistance'选项正确的冲浪情节?对于普通的情节,它运行得很好,但对于冲浪,什么都没有发生……
很完美!好工作!
完美的
这是科学出版物的必备品。非常感谢您的努力。
@Georg如果你在https://github.com/nschloe/matlab2tikz/issues给出更多的细节(如提供与MATLAB代码一起失败的png),我可以尝试修复这个问题。
效果非常好!用乳胶做的人物看起来很漂亮。
但有一个小缺陷:当我覆盖到坐标轴,其中一个包含一个透明的图像,输出是两个png,都是黑色的。
只是令人惊叹!
这是我见过的最好的matlab/latex代码!!
@H VH Ayala:
这些样式允许\ useppackage {pgfplots}吗?这是唯一的条件。
此外,通过使用Pgfplots的“外部化”功能,您可以将这些plot转换为任何日志都应该支持的pdf文件。金宝app(你可能也想看看matlab2tikz的“standalone”选项。)
脚本生成的tex文件中包含的TikZ文件是否符合Elsevier和IEEE等期刊提交?
Armin Schoisswohl的解决方案成功了!;)
亲爱的尼克,
是否有办法操纵情节元素的顺序?当我绘制数据点和线时,它似乎不尊重它,例如plot(x,data,'k.',x,fit,'r-')绘制前景中的黑点,而不管Matlab的绘图顺序,使红色线对大型数据集几乎看不见。同样的问题也发生在“ko”上,而“k-”,即两个元素的线,就像魅力一样,将它们按正确的顺序排列。
谢谢提前
@gbernardi:
\text定义在amsmath包中。试着在序言中包含'\ uspackage {amsmath}',这应该能解决你的问题。
@gbernardi
你试过下面的方法吗?
情节(x, y)
传奇({的文本在这里},“翻译”,“乳胶”)
@gbernardi
Matlab2tikz试图在标记和标签的外观方面做得更聪明,但有时可能会失败。尝试将'parseStrings'设置为false。
如果这没有帮助,一个带有小示例代码的错误报告https://github.com/nschloe/matlab2tikz/issues我们将不胜感激。
很好的工具,但我遇到了图例的问题。
我在matlab中的legend命令中所写的内容包含在$\text{}$环境中,并且\text{}部分在编译时给出了一个错误…你知道为什么吗?
说真的,我刚刚看到我之前的评级到您的档案在2010年,我向您保证,这是一个意外!我通常不会给文件打分,更不要说无缘无故给一星了!这是一个很好的工具,所以我希望我目前的评级能纠正一些事情。有没有办法删除我之前的评分之类的?谢谢分享!
伙计们,我不能转换一个错误条与不均匀的最小值和最大值。它说,目前这段代码只能转换最小值和最大值。有人找到解决办法了吗?提前谢谢。
阿西夫
优秀的剧本,使专业的情节看起来轻松。谢谢!
你好,
我和尼古拉斯·哈勒基有同样的问题。你可以在你的文档的序言插入\pgfplotsset{scaling ticks=base 10:0},它应该可以做到(至少如果你使用datetick)。
干杯
一个伟大的工具。
大家好,
我发现了另一个问题:
matlab2tikz无法处理>>plot3(xvector,yvector,zvector)<<文件。
即使是最简单的例子也不起作用:
% ###################################################################
x =兰德(100 1)* 4 - 2;
y =兰德(100 1)* 4 - 2;
z = x。* exp (- x ^ 2 y ^ 2);
构造插值
% F = TriScatteredInterp(x,y,z,'nearest');
% F = TriScatteredInterp(x,y,z,'natural');
F = TriScatteredInterp (x, y, z,“线性”);
在位置(qx, qy), qz处计算插值
%是这些位置的对应值。
ti = 2: .25:2;
[qx, qy] = meshgrid(钛、钛);
求= F (qx、qy);
抓住
冲浪(qx, qy,求出)
plot3 (x, y, z,“o”)
视图(gca,[-69] 14日);
推迟
matlab2tikz(“testplot3D。tikz', 'height', '\plothoehe', 'width', '\plotbreite', 'parseStrings', false);
% ###################################################################
与matlabfrag相比,我更喜欢matlab2tikz。tikz输出的质量是一流的!伟大的工作!谢谢!
它确实存在,被称为“minimumPointsDistance”。
Matfig2pgf代码有一个选项来减少数据点的数量。你能在你的代码中也包含同样的算法吗?
是的,我需要MATLAB代码(例如通过邮件)。也就是说,警告似乎很明确:“颜色条的大小可能需要调整。”它这么说是有原因的。;)
我有一个开放的图形和输入:
matlab2tikz(“myfile。tikz', 'height', '10cm', 'width', '5mm' );
...适用于2d绘图。
...或is it the plot-code you're asking for?
示例代码?
嗨。
谢谢。非常有用的脚本…一般。但是当我的3d图显示颜色条时,我有一个问题……我得到了错误消息:
“警告:x轴和y轴的物理单位不重合(x: mm;y:厘米)。颜色条的大小
可能需要调整。”
“错误在==> matlab2tikz>getAxisTicks at 3852。
s = str2double(tickLabel{k});"
有什么解决办法吗?提前谢谢。
伟大的工作!谢谢
蒂姆:简单。只使用
> > matlab2tikz(“myfile。tikz', 'height', '\figureheight', 'width', '\figurewidth' );
在LaTeX文档中设置\figureheight和\figurewidth。
见README。
你能不能让数字的大小总是一样的,这样就更容易控制它在报告中的一致性。
谢谢,干得好!
人们总是对matlab2tikz的补丁感兴趣!你可以在GitHub上发送一个pull request,或者通过邮件发送补丁(使用git format-patch获得正确的信用),或者在GitHub上创建一个pull request。我都不介意。
三件事:
1.:这段代码真棒。真的节省了很多时间和工作。
2.:我通过“\pgfplotset{}”在我的序言中设置宽度和高度,只是更改了一些情节。Matlab2tikz总是输出宽度和高度参数,这在本例中不是很有用。
(刚刚找到了Wiki,它提供了一个很好的解决方法https://github.com/nschloe/matlab2tikz/wiki- "\newlength and \setlength")
3.:我增加了对“传奇”金宝app的支持。“朝向”参数以及“Loaction=SouthOutside”和“Location=NorthOutside”,你对代码感兴趣吗?我应该寄到哪里?
你好赛,
#问题现在应该修复;谢谢你的报告。
目前,我不认为pgfplot有办法以任何方式控制图例框的纵横比,但你可能想要浏览它的手册。如果你找到了什么,告诉我一声!
第一次尝试听起来不错。
首先,如果我的xlabel在matlab中是xlabel('# K'),生成的文件是有bug的(手动更改tikz文件中的xlabel={# K}为xlabel={\# K})。
如何保持图例的纵横比?
非常好的剧本! !到目前为止,我一直在使用MATLAB EPS导出,然后用Inkscape编辑并保存为PDF+LaTex解决方案,但这个更简单更好,因为它以一种优雅的方式解决了我以前的解决方案的标签定位问题!
谢谢!
嗨,尼克,
再次感谢你的出色工作。
一些请求:
1.是否有可能有一个命令行开关,把所有Matlab图例条目只是在{},而不是$$ + \text{}?我的图例大多是非公式的,所以如果它们以这种形状通过matlab2tikz,我可以更容易地格式化它们。
2.我建议把“定义自定义颜色”部分放在\begin{tikzpicture}之前,因为如果你在图标题中制作图例(通过使用\label{}和\ref{}), LaTeX将报告一个没有这个错误,因为\definecolor只作用于tikzpicture。
3.与2相关:是否有可能自动标记情节?例如\label{filename-p1}, \label{filename-p2},....
谢谢,
伊戈尔
嗨,尼克,
最好使用filename作为uiputfile的路径(第206行,212行,218行,…),这样文件可以存储在当前文件夹以外的其他地方。
谢谢你!
我已经通过电子邮件向您发送了我对嵌套函数drawText的修改,以便处理使用Matlab text命令创建的文本对象中的问题。如果你同意这一点,你可以相应地更新你的代码,这样我就不用每次有新版本时都修改了。谢谢。
穆赫塔尔
@Alexander Klein:我实现了一两个东西,你可能想看看最新的版本。
对于未来的更改,最好在https://github.com/nschloe/matlab2tikz/.
文档可能不是一直都是最新的。
一般来说,它总是值得一看的https://github.com/nicki/matlab2tikz/.
当然,源文件本身也列出了所有选项,所以您可以查看第125行ff。应该是不言自明的。
我不太明白你的意思。
2)你是说图像的宽度?有“宽度”和“高度”参数。
3)选择“mathmode”。
一般来说,如果你发现了一个bug或类似的东西,我可以更容易地在GitHub上跟踪它。
谢谢你,尼克,剧本是件艺术品。我是一个经验丰富的LaTeX用户(我用它来写我的论文),非常适应MatLab(减去任何主要的绘图)。因此,当我找到您的代码时,您可以想象我是多么激动,因为我正在为报告生成构建脚本。这将是,很容易,我遇到的最好的脚本在这个文件交换中,如果我可以找到如何:
1)删除x轴标签中的10^5(我也使用了日期标记,并在LaTeX序言中添加了Mukhtar的建议,但无济于事)。
2)预先定义线宽、图像纵横比和某种缩放参数,使tikz中的输出宽度和高度参数,例如,
宽= 0.90 \ textwidth,
身高= 0.35 \ textheight
3)某种程度上的理解,我可以指定是否标题,轴标签,图例不解释在LaTeX数学模式(或者你建议我硬编码)?
也许这样的特性是被支持的(正如Petter所提到的)金宝app,但是快速浏览m文件并不能给我一个很好的起点。
@Alexander Klein,我很想知道你的改进是否被作者实施过?
谢谢你所做的一切,
干杯!
这是因为matlab2tikz用$..$包装了我的x和ylabel。我删除了那段代码,得到了预期的结果。
@Petter:你有一个xlabel中的空格不起作用的示例代码吗?在我的所有数据中,它都很完美,所以我猜是你的代码出了问题。
否则,您就不用在TikZ图形中使用\includegraphics(除非您预先编译为PDF或其他文件),但使用已经可用的宽度/高度命令将设置图形的尺寸(这些命令在FEX的描述中也有文档说明)。
D。
xlabel中的空格似乎不起作用
它似乎已经得到了支持,但没有被记录下来。金宝app
看起来不错,但我缺少保持长宽比和改变宽度的功能。例如,\ includegraphics[宽度= 3厘米]{形象}
帮助不包括可选参数。
大家好!
首先:感谢您的matlab2tikz先生Schlömer。这是一款很棒的软件。
不幸的是,在64位Linux系统上使用Matlab 2009b 0.0.7版本时,我遇到了以下问题:
1.标签和标题不能由sprintf编写,因为它位于单元格中。
2.barplot没有起作用,因为有一个拼写错误(例如m2t丢失了)
3.我需要画出时间差很小的时间信号。这就是为什么pgfplots坐标的精度是不够的。
4.在绘制具有数千个数据点的数据序列时,要花几分钟时间来写入文件(由于strcat和lopp, i=1:length(xData))
我已经做了改变的文件,这涉及到这个问题:
1.例句:
如果iscell(标题)
title = {};
结束
2.为我更换
barplotTotalNumber = barplotTotalNumber + 1;
与
m2t。barplotTotalNumber = m2t。barplotTotalNumber + 1;
帮助
3.我为脚本添加了一个选项,可以在其中添加写入pgf文件时使用的格式字符串的精度
4.我用repmat结构替换了for循环,这大大减少了计算时间。
如果有人遇到同样的问题,我可以把这个文件发送给Schlömer先生(如果他喜欢添加更改)。或者有没有更好的办法来解决这个问题?
亲切的问候
亚历山大
工作好了!
谢谢!
Wondeful工具。今天,我试了一下,没有比这更好的了。我也遇到过同样的问题(烦人的x10^5),正如Paul所提到的,但这与malab2tikz无关。而是pgfplot处理标记标签的方式。我找到了一个解决方案,尽管,我想分享,并要求Nico包括它在自述文件。
将此添加到乳胶文档的序言中
\pgfplotsset{x tick标签样式={/pgf/数字格式/固定}}
\pgfplotsset{y tick label style={/pgf/number format/fixed}}
当然,如果你喜欢x10^5的表示法,你不需要这样做。
大家好!我叫Ngo Huy。我是胡志明工业大学四年的学生。我有一个项目毕业处理器图像(产品分类在(闭合链塞)
帮助我。我使用PLC s7200, matlab 7.1
你好,
神奇的工具! !非常感谢。
但我有一个恼人的问题。我有坐标导入作为matlab串行日期,然后我使用xtick重新标记。工作正常,除了当pgf绘制图形时,在右下角有一个恼人的x10^5(这必须来自matlab的串行日期值)。
例如,我的代码是:
开始\ {tikzpicture}
开始\[%{轴}
视图= {0}{90},
规模只有轴,
宽度= \ figurewidth,
身高= \ figureheight,
xmin = 724642, xmax = 733408,
ymin = 0, ymax = 3.5,
xtick = {724642, 725373, 726103, 726834, 727564, 728295, 729025, 729756, 730486, 731217, 731947, 732678, 733408},
xticklabels ={84, 86, 88, 90, 92, 94, 96, 98, 00, 02、04、06、08年},
有人能帮我一下吗?
致以最亲切的问候
保罗
优秀的工具,出来的情节看起来很棒!
一个非常有用的软件包。我希望它能很快支持每一种情节类金宝app型(特别是散点类型;-))!
我使用这个提交广泛地添加到我的乳胶文件的情节,它的工作像预期的那样。谢谢你的投稿!
如果你解释需要上传pgf和pgfplots乳胶包,并在latex文档的序言中调用\ uspackage {pgfplots},情况就会好得多。在那之后,它似乎可以正常工作。