标签: pgf

如何控制乳胶中pgf/tikz图形的字体大小?

我在pgf/tikz中创建图表.当我在我的文档中使用它们时,它们被缩放,其中几个在minipage/subfig环境中.发生这种情况时,字体大小会随着图形缩放而变得非常小或不可读.我已经完成了手册,但迄今为止我试图控制它并不成功.

有没有办法直接设置字体大小?有什么选择?

下面给出的一个aswer显示了如何使用\ tikzstyle字体选项指定tikzpicture环境中的字体大小.

现在我正在使用:

\beginppgfgraphicnamed{graph}
\input{graph.tex}
\endpgfgraphicnamed
Run Code Online (Sandbox Code Playgroud)

tikzpicture环境用于输入文件.有没有在我使用的设置中指定字体大小?这可能是问题吗?graph.tex文件是通过另一个程序自动生成的.

除了为单个图形设置字体大小之外,最理想的是有一个参数来全局设置所有tikz图形的字体大小?我想这个问题是在缩放minipagesubfig.

非常感谢,

松鸦

latex tikz pgf

59
推荐指数
4
解决办法
10万
查看次数

用板表示法绘制图形模型的软件

因此,我一直在研究论文和网上看到以图表符号表示的图形模型(例如:http://www.cs.princeton.edu/~blei/papers/BleiNgJordan2003.pdf).

是否有一种快速简便的方法来生产这些?我进行了搜索和搜索,但我发现的只有GraphViz这样的解决方案,它实际上比我需要的更强大(因此更难以使用).PGF/Tikz似乎是我最好的选择,但再次看起来有点矫枉过正.

也许我最好的选择是在Inkscape中制作它们,或者咬紧牙关学习PGF/Tikz.他们是如此受欢迎,我认为会有一种更简单的方式来推销它们,但也许不是...... TIA.

graphics graphviz pgf

22
推荐指数
3
解决办法
6730
查看次数

如何获得tikz/PGF坐标的一个组件?

我试图在我的图表上绘制一条水平线.线的Y坐标应位于点a和b之间(a在b下方).该行的左右端点位于tikzpicture的边界框上.以下是我现在使用交集运算符执行此操作的方法:

\coordinate (h0) at ($(a.north)!0.5!(b.south)$);
\draw (h0 -| current bounding box.west) -- (h0 -| current bounding box.east);

这让我感到非常迂回.我宁愿做的是得到(h0)的Y坐标和边界框的东边和西边的X坐标,并自己编写坐标.我想这样做,但不支持语法:

\coordinate (h0) at ($(a.north)!0.5!(b.south)$);
\draw (current bounding box.west.x,h0.y) -- (current bounding box.east.x,h0.y);

有没有办法引用我遗漏的坐标的各个组成部分?

latex tikz pgf

19
推荐指数
3
解决办法
1万
查看次数

Tikz:节点组的水平居中

我需要将图形的每一行与中心对齐.我试图用xshift做到这一点.这里的代码:

    \begin{tikzpicture}[node distance=1.5cm, auto, text centered]
    \tikzstyle{every node}=[draw,ball];
    \begin{scope}[xshift=1.5cm]
        \node (A) {A};
        \node [right of=A] (B) {B};
        \node [right of=B] (C) {C};
        \node [right of=C] (D) {D};
    \end{scope}
    \begin{scope}[yshift=-1.5cm]
        \node (AB) {AB};
        \node [right of=AB] (AC) {AC};
        \node [right of=AC] (AD) {AD};
        \node [right of=AD] (BC) {BC};
        \node [right of=BC] (BD) {BD};
        \node [right of=BD] (CD) {CD};
    \end{scope}
    \begin{scope}[yshift=-3cm,node distance=2cm,xshift=1cm]
        \node (ABC) {ABC};
        \node [right of=ABC] (ABD) {ABD};
        \node [right of=ABD] (ACD) {ACD};
        \node [right of=ACD] (BCD) {BCD};
    \end{scope}
    \begin{scope}[xshift=4cm, …
Run Code Online (Sandbox Code Playgroud)

latex tikz centering pgf

12
推荐指数
1
解决办法
8609
查看次数

比较Latex中的浮点数

我正在尝试使用\ ifthenelse进行浮点比较.这是pgf/tikz代码,如果\ y只是整数,则可以工作,但不是这样:

\foreach \y in {3,3.5,...,6} {
    ifthenelse{\y<3}{
        ...
    }{
        ...
    }
}
Run Code Online (Sandbox Code Playgroud)

latex tikz pgf

11
推荐指数
2
解决办法
7673
查看次数

在minipage/subfig中缩放时,控制LaTeX中图形的字体大小?

我正在使用pgf/tikz图形,我想知道在minipage/subfig环境中使用它们时如何控制图形中字体大小的缩放?

有没有办法手动设置pgf/tikz图形或乳胶中的永久字体大小,以便使字体大小不变为缩放?

理想情况下,我希望能够为每个图形或所有图形或子图形/小型化环境手动指定字体大小?

以下是建议使用的示例.谢谢您的帮助.

\begin{figure}[h]
\centering
\subfloat[Graph 1]{
    \begin{minipage}[h]{0.7\linewidth}
        \centering\beginpgfgraphicnamed{graph1}
        \input{graph1.tex}
        \endpgfgraphicnamed
        \label{fig:graph1}
    \end{minipage}}
\hspace{5pt}
\subfloat[Graph 2]{
    \begin{minipage}[h]{0.5\linewidth}
        \centering\beginpgfgraphicnamed{graph2}
        \input{graph2.tex}
        \endpgfgraphicnamed
        \label{fig:graph2}
    \end{minipage}}
\subfloat[Graph 3]{
    \begin{minipage}[h]{0.5\linewidth}
        \centering\beginpgfgraphicnamed{graph3}
        \input{graph3.tex}
        \endpgfgraphicnamed
        \label{fig:graph3}
    \end{minipage}}
\caption{Three Graphs}
\end{figure}
Run Code Online (Sandbox Code Playgroud)

也许在minipage/subfig之外我可以使用其他帖子的建议来使字体变大,因为图形是用页面宽度缩放的?在这个例子中我想要的是它自己的第一个图像,更大,然后是两个小图像,并排在一个图中,并排在一起.

我在你的个人资料Mica中看到了一些R标签.图形是使用tikzDevice生成的,并在我的latex文档中提取.

所以我在没有tikzpicture环境的情况下生成文件,以便我可以自己手动设置选项.当我使用时,\begin{tikzpicture} \end{tikzpicture}我得到错误"尺寸太大我不能使用大于19英尺的尺寸.继续,我将使用我能够的最大值." .我需要用\beginpgfgraphicnamed{} .. \endpgfgraphicnamed{}它才能让它工作?不确定影响究竟是什么.

以下是自动生成文件的示例:

\begin{scope}
\path[clip] (  0.00,  0.00) rectangle (794.97,614.29);
\definecolor[named]{drawColor}{rgb}{0.13,0.76,0.43}
\definecolor[named]{fillColor}{rgb}{0.31,0.94,0.66}
\end{scope}
\begin{scope}
\path[clip] (  0.00,  0.00) rectangle (794.97,614.29);
\definecolor[named]{drawColor}{rgb}{0.13,0.76,0.43}
\definecolor[named]{fillColor}{rgb}{0.31,0.94,0.66}
\end{scope}
Run Code Online (Sandbox Code Playgroud)

........

\begin{scope}
\path[clip] (  0.00,  0.00) rectangle (794.97,614.29);
\definecolor[named]{drawColor}{rgb}{0.13,0.76,0.43}
\definecolor[named]{fillColor}{rgb}{0.31,0.94,0.66}
\definecolor[named]{fillColor}{rgb}{1.00,1.00,1.00}

\draw[fill=fillColor,draw opacity=0.00,] …
Run Code Online (Sandbox Code Playgroud)

latex subfigure tikz pgf

9
推荐指数
1
解决办法
2万
查看次数

避免在 matplotlib 图的 PGF 导出中指定字体系列

概括

我将 matplotlib 图形导出为 PGF 以在 LaTeX 中使用。

\sffamily将图形保存为 PGF 时,matplotlib 似乎为每个文本条目(轴标签、刻度、图例条目、注释)添加了一个附加项。这将阻止它从全局文档字体正确继承字体。

如果文本来自同一个家族,文本可以从全局文档字体继承字体,但如果全局字体来自不同的家族,它将恢复为默认的 sffamily 字体。

我去的地方

我相信我已经隔离了这个问题:如果我编辑 PGF 文档并简单地删除\sffamily任何文本条目的一部分,问题不再存在并且全局字体被继承。删除不会阻止 LaTeX 正确编译它,并且我没有收到任何错误。

由于上述发现,我认为问题与rcParams任何 LaTeX 前言(无论是在 python 中还是在实际的 LaTeX 文档中)无关。

移动电源

我只是在最简单的情节上进行了尝试,并且能够重现该问题:

import matplotlib.pyplot as plt

fig = plt.figure()
plt.xlabel('a label')
fig.savefig('fig.pgf')
Run Code Online (Sandbox Code Playgroud)

并且 pgf 文档将包含以下行:

\pgftext[x=3.280000in,y=0.240809in,,top]{\color{textcolor}\sffamily\fontsize{10.000000}{12.000000}\selectfont a label}%
Run Code Online (Sandbox Code Playgroud)

所以\sffamily添加了。在 LaTeX 中渲染它会强制使用 sans-serif 字体。删除\sffamily并渲染它将允许它继承字体系列。

TLDR

有没有办法避免在 matplotlib 的 PGF 输出中包含字体系列?

latex matplotlib pgf

9
推荐指数
1
解决办法
893
查看次数

matplotlib与pgf,错误:维度太大

在使用matplotlib的pgf后端时,我有时会看到如下错误:

! Dimension too large.
<to be read again> 
                   \advance 
l.69 ...o{\pgfqpoint{-11.400000in}{-235.382893in}}
Run Code Online (Sandbox Code Playgroud)

这是来自LaTeX处理步骤,如果我向matplotlib询问png,或者在处理嵌入了pgf文件的文档时会发生这种情况.当我设置与数据限制相比非常窄的轴限制时,会发生这种情况.所以我假设pgf接收并尝试处理或绘制整个数据集,并且一些超出预期可见范围的点也在pgf的内部大小限制之外.

MWE:

import matplotlib as mpl
mpl.use("pgf")
import numpy as np
import matplotlib.pyplot as plt

x = np.linspace(-5,5)
y = 100*np.exp(x)

plt.xlim((-0.1,0.1))
plt.ylim((99,101))

plt.plot(x,y)
plt.savefig('exp.png')
Run Code Online (Sandbox Code Playgroud)

我的问题:有没有什么方法可以让matplotlib提供pgf一组有限的数据?或者还有其他解决方案吗?我可以根据我想要的限制截断我提供给pyplot命令的数据,但我希望matplotlib有一个内部解决方案,以避免我从许多个案的烦躁中获取.(还有一种情况,当我在轴上添加样条补丁时,我不知道如何切断部分曲线.)

我看了一些文件,看到get_clip_on()get_clip_box()Line2D,但任何常规的情节命令后,前一种方法反正返回true,后者返回一些TransformedBbox规范,大概占轴本身的东西.

python matplotlib pgf

8
推荐指数
1
解决办法
495
查看次数

pgf/tikz:字符串符号作为输入坐标

我是pgf的新手所以我正在尝试pgfplot手册中的一些例子.一个例子与我当前的任务特别相关,但是,它不会编译.

这是代码:

\documentclass[11pt]{article}
\usepackage{tikz}
\usepackage{pgfplots}

\begin{document}
\begin{tikzpicture} 
    \begin{axis}[symbolic x coords={a,b,c,d,e,f,g,h,i}] 
        \addplot+[smooth] coordinates { 
            (a,42) 
            (b,50) 
            (c,80) 
            (f,60) 
            (g,62) 
            (i,90)}; 
    \end{axis} 
\end{tikzpicture} 
\end{document}
Run Code Online (Sandbox Code Playgroud)

编译器退出时出现以下错误:

! Package PGF Math Error: Could not parse input 'a' as a floating point number,
 sorry. The unreadable part was near 'a'..
Run Code Online (Sandbox Code Playgroud)

我不知道如何纠正这种行为.其他图(平滑,散点图,条形图),只包含数值数据编译.

有人可以给我一个暗示吗?

干杯

K.

string plot axis tikz pgf

7
推荐指数
1
解决办法
3411
查看次数

matplotlib pgf:OSError:subprocess.py中没有这样的文件或目录

我尝试使用matplotlib为LaTeX创建一个pgf文件:

from matplotlib.pyplot import subplots
from numpy import linspace
x = linspace(0, 100, 30)
fig, ax = subplots(figsize = (10, 6))
ax.scatter(x, x)
fig.tight_layout()
fig.savefig('/home/mark/dicp/python/figure.pgf')
Run Code Online (Sandbox Code Playgroud)

但我得到OSError: [Errno 2] No such file or directory:

Traceback (most recent call last):
  File "visualize/latex_figs.py", line 32, in <module>
    fig.savefig('/home/mark/dicp/python/figure.pgf')
  File "/usr/local/lib/python2.7/dist-packages/matplotlib/figure.py", line 1421, in savefig
    self.canvas.print_figure(*args, **kwargs)
  File "/usr/local/lib/python2.7/dist-packages/matplotlib/backend_bases.py", line 2220, in print_figure
    **kwargs)
  File "/usr/local/lib/python2.7/dist-packages/matplotlib/backend_bases.py", line 1957, in print_pgf
    return pgf.print_pgf(*args, **kwargs)
  File "/usr/local/lib/python2.7/dist-packages/matplotlib/backends/backend_pgf.py", line 818, in print_pgf
    self._print_pgf_to_fh(fh, *args, **kwargs) …
Run Code Online (Sandbox Code Playgroud)

latex matplotlib pgf

7
推荐指数
1
解决办法
7949
查看次数

标签 统计

pgf ×10

latex ×7

tikz ×6

matplotlib ×3

axis ×1

centering ×1

graphics ×1

graphviz ×1

plot ×1

python ×1

string ×1

subfigure ×1