Problema: alternare colore righe pari-dispari con xcolor

  • Questo topic ha 3 risposte, 2 partecipanti ed è stato aggiornato l'ultima volta 18 anni, 7 mesi fa da DMW.
  • Creatore
    Topic
  • #21124
    Up
    0
    Down
    ::


    Salve a tutti,
    non riesco ad ottenere il risultato sperato con una tabella: colorare in modo alterne (bianco/grigio) le righe di una tabella, a partire dalla 2° cella fino all’ultima. Infatti, la prima cella di ogni riga (per la quale uso un \multirow), sembra non essere correttamente vista da \rowcolors e gli effetti indesiderati sono 2:
    a) Il testo centrato tra 2 righe (nella prima cella) viene parzialmente tagliato
    b) Alternativamente vengono colorate coppie di righe

    Linko la tabella che ottengo .
    Quello che vorrei, è fare in modo che vengano colorate tutte le righe “wavelet” di uno stesso colore e quelle “ranklet” dell’altro colore, senza colorare la prima cella.

    Allego il codice:

    `
    \begin{table}[htbp]
    \centering
    \rowcolors{3}{}{lightgray!50}
    \begin{tabular}{|c|c *{4}{|cc}|}
    \hline
    & \multirow{2}{*}{\textbf{Codifica}} & \multicolumn{2}{|c}{\textbf{SVM (C-SVC)}} &
    \multicolumn{2}{|c}{\textbf{TSVM$^{light}$}} &
    \multicolumn{2}{|c}{\textbf{UniverSVM}} & \multicolumn{2}{|c|}{\textbf{1-class SVM}} \\
    \cline{3-10}
    & & \textit{TPR} & \textit{FPR} & \textit{TPR} & \textit{FPR} & \textit{TPR} & \textit{FPR} & \textit{TPR} &
    \textit{FPR} \\
    \hline
    \multirow{2}{*}{D2} & Wavelet & 0.325 & 0.006 & 0.665 & 0.043 & 0.670 & 0.026 & 0.650 & 0.893\\
    %D2 & Wavelet & 0.325 & 0.006 & 0.665 & 0.043 & 0.670 & 0.026 & 0.650 & 0.893\\
    \cline{2-10}
    & Ranklet & 0.510 & 0.003 & 0.770 & 0.016 & 0.675 & 0.013 & 0.545 & 0.628\\
    \hline
    \multirow{2}{*}{D3} & Wavelet & 0.760 & 0.053 & 0.945 & 0.180 & 0.925 & 0.120 & 0.620 & 0.844\\
    \cline{2-10}
    & Ranklet & 0.835 & 0.041 & 0.955 & 0.178 & 0.910 & 0.111 & 0.835 & 0.744\\
    \hline
    \multirow{2}{*}{D4} & Wavelet & 0.825 & 0.100 & 0.985 & 0.376 & 0.960 & 0.250 & 0.585 & 0.824\\
    \cline{2-10}
    & Ranklet & 0.910 & 0.094 & 0.985 & 0.379 & 0.950 & 0.244 & 0.835 & 0.744\\
    \hline
    \multirow{2}{*}{D5} & Wavelet & 0.790 & 0.061 & 0.945 & 0.180 & 0.930 & 0.123 & 0.625 & 0.863\\
    \cline{2-10}
    & Ranklet & 0.895 & 0.060 & 0.955 & 0.178 & 0.935 & 0.100 & 0.985 & 0.844\\
    \hline
    \multirow{2}{*}{D6} & Wavelet & 0.815 & 0.058 & 0.935 & 0.108 & 0.920 & 0.110 & 0.665 & 0.890\\
    \cline{2-10}
    & Ranklet & 0.845 & 0.045 & 0.925 & 0.110 & 0.890 & 0.068 & 0.980 & 0.890\\
    \hline
    \multirow{2}{*}{D7} & Wavelet & 0.790 & 0.033 & 0.825 & 0.044 & 0.880 & 0.065 & 0.710 & 0.906\\
    \cline{2-10}
    & Ranklet & 0.815 & 0.024 & 0.850 & 0.038 & 0.845 & 0.035 & 0.995 & 0.906 \\
    \hline
    \end{tabular}
    \label{tab:prova}
    \end{table}
    `

    Grazie in anticipo,
    Marco

Visualizzazione 2 filoni di risposte
  • Autore
    Risposte
    • #21125
      DMW
        Up
        0
        Down
        ::


        io consiglio colortbl. Comunque il problema è multirow. In questo caso è meglio usare multirow con un parametro negativo.
        Esempio:

        `\begin{table}[htbp]
        \centering
        \rowcolors{3}{white}{gray!50}
        \begin{tabular}{|c|c *{4}{|cc}|}
        \hline
        & & \multicolumn{2}{c|}{\textbf{SVM (C-SVC)}} &
        \multicolumn{2}{c|}{\textbf{TSVM$^{light}$}} &
        \multicolumn{2}{c|}{\textbf{UniverSVM}} & \multicolumn{2}{c|}{\textbf{1-class SVM}} \\
        \cline{3-10}
        & \multirow{-2}{*}{\textbf{Codifica}}& \textit{TPR} & \textit{FPR} & \textit{TPR} & \textit{FPR} & \textit{TPR} & \textit{FPR} & \textit{TPR} &
        \textit{FPR} \\
        \hline
        & Wavelet & 0.325 & 0.006 & 0.665 & 0.043 & 0.670 & 0.026 & 0.650 & 0.893\\
        %D2 & Wavelet & 0.325 & 0.006 & 0.665 & 0.043 & 0.670 & 0.026 & 0.650 & 0.893\\
        \cline{2-10}
        \multirow{-2}{*}{D2}& Ranklet & 0.510 & 0.003 & 0.770 & 0.016 & 0.675 & 0.013 & 0.545 & 0.628\\
        \hline
        & Wavelet & 0.760 & 0.053 & 0.945 & 0.180 & 0.925 & 0.120 & 0.620 & 0.844\\
        \cline{2-10}
        \multirow{-2}{*}{D3}& Ranklet & 0.835 & 0.041 & 0.955 & 0.178 & 0.910 & 0.111 & 0.835 & 0.744\\
        \hline
        & Wavelet & 0.825 & 0.100 & 0.985 & 0.376 & 0.960 & 0.250 & 0.585 & 0.824\\
        \cline{2-10}
        \multirow{-2}{*}{D4}& Ranklet & 0.910 & 0.094 & 0.985 & 0.379 & 0.950 & 0.244 & 0.835 & 0.744\\
        \hline
        & Wavelet & 0.790 & 0.061 & 0.945 & 0.180 & 0.930 & 0.123 & 0.625 & 0.863\\
        \cline{2-10}
        \multirow{-2}{*}{D5}& Ranklet & 0.895 & 0.060 & 0.955 & 0.178 & 0.935 & 0.100 & 0.985 & 0.844\\
        \hline
        & Wavelet & 0.815 & 0.058 & 0.935 & 0.108 & 0.920 & 0.110 & 0.665 & 0.890\\
        \cline{2-10}
        \multirow{-2}{*}{D6}& Ranklet & 0.845 & 0.045 & 0.925 & 0.110 & 0.890 & 0.068 & 0.980 & 0.890\\
        \hline
        & Wavelet & 0.790 & 0.033 & 0.825 & 0.044 & 0.880 & 0.065 & 0.710 & 0.906\\
        \cline{2-10}
        \multirow{-2}{*}{D7} & Ranklet & 0.815 & 0.024 & 0.850 & 0.038 & 0.845 & 0.035 & 0.995 & 0.906 \\
        \hline
        \end{tabular}
        \label{tab:prova}
        \end{table} `

        Attenzione a come usi multicolumn; metti troppe barre verticali |c|…che sono dannose.
        Comunque in generale ti consiglio di usare colortbl. Vedi anche questo topic
        http://www.guit.sssup.it/phpbb/viewtopic.php?t=2669

        Ciao

        Andrea

      • #21126
        Up
        0
        Down
        ::


        Grazie delle info!!

        Ho provato a mettere -2 nel \multirow, ma incasinava la tabella (traslando verso l’alto il testo)
        Ho risolto utilizzando \rowcolor{gray!50} \cellcolor{white} dopo ogni \hline e prima di ogni \multirow{2}{*}{Dx}.

        L’unico difetto che noto utilizzando questi comandi, è dato dal fatto che le linee verticali che “confinano” con le celle soggette al settaggio di un certo colore (bianco o grigio), appaiono leggermente più sottili, come se il colore si sovrapponesse leggermente a tali linee.

        Marco

      • #21127
        DMW
          Up
          0
          Down
          ::

          Grazie delle info!!

          Ho provato a mettere -2 nel \multirow, ma incasinava la tabella (traslando verso l’alto il testo)
          Ho risolto utilizzando \rowcolor{gray!50} \cellcolor{white} dopo ogni \hline e prima di ogni \multirow{2}{*}{Dx}.

          L’unico difetto che noto utilizzando questi comandi, è dato dal fatto che le linee verticali che “confinano” con le celle soggette al settaggio di un certo colore (bianco o grigio), appaiono leggermente più sottili, come se il colore si sovrapponesse leggermente a tali linee.

          Marco

          I filetti ci sono.

          Guarda qui
          http://www.guit.sssup.it/phpbb/viewtopic.php?t=3571&start=0&postdays=0&postorder=asc&highlight=arrayrulewidth

          l’ultimo messaggio.

          Ciao

          Andrea

      Visualizzazione 2 filoni di risposte
      • Devi essere connesso per rispondere a questo topic.

      Go to top