I created this table in Latex:
As you can see the text (MNIST, CIFAR10,...) in the column Dataset is not vertical aligned. How can I put that strings in the middle of the cell?
This is my code:
\begin{table}[!hbt]
\caption{Multi-row table}
\begin{center}
\begin{tabular}{|c|c|c|c|c|}
\hline
Category & Epochs per round & Dataset & FedAvg & FedCurv \\
\hline
\multirow{9}{2.5cm}{\centering Uniform Distribution} & 1 & MNIST & accuracy & accuracy \\
& 10 & & accuracy & accuracy \\
& 30 & & accuracy & accuracy \\ \cline{2-5}
& 1 & CIFAR10 & accuracy & accuracy\\
& 10 & & accuracy & accuracy\\
& 30 & & accuracy & accuracy \\\cline{2-5}
& 1 & TinyImageNet & accuracy & accuracy \\
& 10 & & accuracy & accuracy \\
& 30 & & accuracy & accuracy \\
\hline
\multirow{9}{2.5cm}{\centering Quantity Skew} & 1 & MNIST & accuracy & accuracy \\
& 10 & & accuracy & accuracy \\
& 30 & & accuracy & accuracy \\ \cline{2-5}
& 1 & CIFAR10 & accuracy & accuracy\\
& 10 & & accuracy & accuracy\\
& 30 & & accuracy & accuracy \\ \cline{2-5}
& 1 & TinyImageNet & accuracy & accuracy \\
& 10 & & accuracy & accuracy\\
& 30 & & accuracy & accuracy \\
\hline
\multirow{9}{2.5cm}{\centering Quantity Labels Skew} & 1 & MNIST & accuracy & accuracy \\
...
\multirow{9}{2.5cm}{\centering Covariate Shift} & 1 & MNIST & accuracy & accuracy \\
& 10 & & accuracy & accuracy \\
& 30 & & accuracy & accuracy \\ \cline{2-5}
& 1 & CIFAR10 & accuracy & accuracy\\
& 10 & & accuracy & accuracy\\
& 30 & & accuracy & accuracy \\ \cline{2-5}
& 1 & TinyImageNet & accuracy & accuracy \\
& 10 & & accuracy & accuracy\\
& 30 & & accuracy & accuracy \\
\hline
\end{tabular}
\end{center}
\label{tab:multicol}
\end{table}
I suggest to use the tabularray package instead of a traditional tabular.
Unrelated to the problem, but don't use the center environment inside a float, this will add additional vertical spacing. You can use \centering instead.
\documentclass{article}
\usepackage{tabularray}
\begin{document}
\begin{table}[!hbt]
\caption{Multi-row table}
%\begin{center}
\centering
\begin{tblr}{|c|c|c|c|c|}
\hline
Category & Epochs per round & Dataset & FedAvg & FedCurv \\
\hline
\SetCell[r=9]{} Uniform Distribution & 1 & \SetCell[r=3]{} MNIST & accuracy & accuracy \\
& 10 & & accuracy & accuracy \\
& 30 & & accuracy & accuracy \\ \cline{2-5}
& 1 & \SetCell[r=3]{}CIFAR10 & accuracy & accuracy\\
& 10 & & accuracy & accuracy\\
& 30 & & accuracy & accuracy \\\cline{2-5}
& 1 & \SetCell[r=3]{}TinyImageNet & accuracy & accuracy \\
& 10 & & accuracy & accuracy \\
& 30 & & accuracy & accuracy \\
\hline
\end{tblr}
%\end{center}
\label{tab:multicol}
\end{table}
\end{document}
Related
I have made a table with multiple columns and rows arguments like this
\begin{table}[H]
\centering
\begin{tabular}{lccccc}
\hline
\multirow{2}{*}{Aspects} & Probability & \multicolumn{4}{c}{Methods} \\
\cline{3-6}
& for DE Genes & Binomial Test & Tangram & stereoscope & BayesPrism\\
\hline
\multirow{3}{*}{AUC} & 0.3 & 0.867 & 0.029 & 0.074 & 0.992 \\
& 0.1 & 0.722 & 0.023 & 0.015 & 0.987\\
& 0.05 & 0.512 & 0.055 & 0.025 & 0.972\\
\hline
\multirow{3}{*}{Best Thresholds} & 0.3 & ${0.135$ & 0.029 & 0.072 & $1e-10$ \\
& 0.1 & ${1e-60$ & 0.026 & 0.065 & $1e-10$\\
& 0.05 & $1e-60$ & 0.033 & 0.069 & $1e-10$\\
\hline
\end{tabular}
\caption{The ROC Curve Summary for Data with 15 Clusters}
\label{15 cluster summary}
\end{table}
It will give the results like this
I want to make the entries "Best Thresholds" be in two rows (filling 3 rows arguments) so that the table is not too wide. Could anyone helps how to make it?
You can place the text in a \parbox:
\documentclass{article}
\usepackage{multirow}
\begin{document}
\begin{table}[htbp]
\centering
\begin{tabular}{lccccc}
\hline
\multirow{2}{*}{Aspects} & Probability & \multicolumn{4}{c}{Methods} \\
\cline{3-6}
& for DE Genes & Binomial Test & Tangram & stereoscope & BayesPrism\\
\hline
\multirow{3}{*}{AUC} & 0.3 & 0.867 & 0.029 & 0.074 & 0.992 \\
& 0.1 & 0.722 & 0.023 & 0.015 & 0.987\\
& 0.05 & 0.512 & 0.055 & 0.025 & 0.972\\
\hline
\multirow{3}{*}{\parbox{2cm}{\raggedright Best Thresholds}} & 0.3 & $0.135$ & 0.029 & 0.072 & $1e-10$ \\
& 0.1 & $1e-60$ & 0.026 & 0.065 & $1e-10$\\
& 0.05 & $1e-60$ & 0.033 & 0.069 & $1e-10$\\
\hline
\end{tabular}
\caption{The ROC Curve Summary for Data with 15 Clusters}
\label{15 cluster summary}
\end{table}
\end{document}
I have a table in Overleaf. I want to remove the horizontal line (crossing the number 0.3). I know I can use \cline{} command to remove some horizontal lines, but I do not know how to use the combination of them.
\begin{tabular}{l|c|c|c|c|c}
\hline
\multirow{2}{*}{Aspects} & Probability & \multicolumn{4}{c}{Methods} \\
\cline{3-6}
& for DE Genes & Binomial Test & Tangram & stereoscope & BayesPrism\\
\cline{3-6}
AUC & \multirow{2}{*}{0.3} & 0.519 & -0.261 & -0.020 & 0.996 \\
\cline{1-2}
\cline{3-6}
Best thresholds & &$0.398$ & $0.019$ & 0.204 & ${\rm e}^{-50}$\\
\hline
\end{tabular}
\caption{The ROC Curve Summary for Data with 5 Clusters with Probability 0.05 for DE
Genes}
\label{5 cluster 0.05}
\end{table}
The table looks like this.
If you want the line only in the first column, use \cline{1-1} instead of \cline{1-2} which will draw it over the first two columns.
\documentclass{article}
\usepackage{multirow}
\begin{document}
\begin{tabular}{l|c|c|c|c|c}
\hline
\multirow{2}{*}{Aspects} & Probability & \multicolumn{4}{c}{Methods} \\
\cline{3-6}
& for DE Genes & Binomial Test & Tangram & stereoscope & BayesPrism\\
\cline{3-6}
AUC & \multirow{2}{*}{0.3} & 0.519 & -0.261 & -0.020 & 0.996 \\
\cline{1-1}
\cline{3-6}
Best thresholds & &$0.398$ & $0.019$ & 0.204 & ${\rm e}^{-50}$\\
\hline
\end{tabular}
\end{document}
This code:
\subsection*{4.1 1NF}
No, this table is not in 1NF as column Info can and on multiple rows hold multiple values. 1NF Variation would be:
\par
\begin{table}[]
\begin{tabular}{|l|l|l|l|l|l|}
\hline
{\ul \textbf{Student\_ID}} & \textbf{First Name} & \textbf{Last Name} & \textbf{Course} & \textbf{Credits} & \textbf{Grade} \\ \hline
1 & Adam & Brown & Databases & 5 & 8 \\ \hline
1 & Adam & Brown & Algebra & 3 & 7 \\ \hline
1 & Adam & Brown & Algorithms & 5 & 9 \\ \hline
2 & Felicia & Green & Algebra & 3 & 10 \\ \hline
2 & Felicia & Green & Programming & 5 & 6 \\ \hline
3 & Mary & Grey & Databases & 5 & 9 \\ \hline
3 & Mary & Grey & Algorithms & 5 & 7 \\ \hline
3 & Mary & Grey & Web & 3 & 10 \\ \hline
1 & Adam & Brown & Physics & 3 & 10 \\ \hline
\end{tabular}
\end{table}
Produces this result:
Rednder of the LaTeX code above
But I need the table to be after the text.
Can someone tell me what am I doing wrong?
You're missing a floating specifier, e.g. to allow the table [h]ere, at the [t]op, at the [b]ottom or on a separate [p]age:
\begin{table}[htbp]
I a trying to put a table in my report. I want to place it in the middle of the page.
but it is shifted to the right side. How can I fix it? (I am using overleaf)
I really appreciate it if anyone could help me to fix the problem.
This is the code:
\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage[english]{babel}
\usepackage{floatrow}
\floatsetup[table]{capposition=top}
\usepackage{natbib}
\usepackage{graphicx}
\usepackage{adjustbox}
\usepackage{tabularx}
\usepackage{caption}
\begin{table}[p]
\centering
\small
\begin{tabular}{|c|c|c|c|c|c|c|c|c|c|}
\hline
\textbf{Sub fault} & \textbf{Lat} & \textbf{Lon} & \textbf{\begin{tabular}[c]{#{}c#{}}Depth\\ (Km)\end{tabular}} & \textbf{\begin{tabular}[c]{#{}c#{}}Strike\\ (Deg.)\end{tabular}} & \textbf{\begin{tabular}[c]{#{}c#{}}Dip \\ (Deg.)\end{tabular}} & \textbf{\begin{tabular}[c]{#{}c#{}}Length\\ (Km)\end{tabular}} & \textbf{\begin{tabular}[c]{#{}c#{}}Width\\ (Km)\end{tabular}} & \textbf{\begin{tabular}[c]{#{}c#{}}Rake \\ (Deg.)\end{tabular}} & \textbf{\begin{tabular}[c]{#{}c#{}}Slip (m)\\ Mw=9.0\end{tabular}} \\ \hline
\textbf{1} & 18.9848 & -65.6921 & 22.1 & 89.59 & 20 & 100 & 50 & 90 & 7.4 \\ \hline
\textbf{2} & 19.4069 & -65.6953 & 5 & 89.59 & 20 & 100 & 50 & 90 & 7.4 \\ \hline
\textbf{3} & 18.9484 & -66.5742 & 22.1 & 84.98 & 20 & 100 & 50 & 90 & 7.4 \\ \hline
\textbf{4} & 19.3688 & -66.6133 & 5 & 84.98 & 20 & 100 & 50 & 90 & 7.4 \\ \hline
\textbf{5} & 18.8738 & -67.5412 & 22.1 & 85.87 & 20 & 100 & 50 & 90 & 7.4 \\ \hline
\textbf{6} & 19.2948 & -67.5734 & 5 & 85.87 & 20 & 100 & 50 & 90 & 7.4 \\ \hline
\textbf{7} & 18.7853 & -68.4547 & 22.1 & 83.64 & 20 & 100 & 50 & 90 & 7.4 \\ \hline
\textbf{8} & 19.2048 & -68.5042 & 5 & 83.64 & 20 & 100 & 50 & 90 & 7.4 \\ \hline
\textbf{9} & 18.8870 & -63.8800 & 22.1 & 95.37 & 20 & 100 & 50 & 90 & 7.4 \\ \hline
\textbf{10} & 19.3072 & -63.8382 & 5 & 95.37 & 20 & 100 & 50 & 90 & 7.4 \\ \hline
\textbf{11} & 18.9650 & -64.8153 & 22.1 & 94.34 & 20 & 100 & 50 & 90 & 7.4 \\ \hline
\textbf{12} & 19.3859 & -64.7814 & 5 & 94.34 & 20 & 100 & 50 & 90 & 7.4 \\ \hline
\textbf{13} & 18.0566 & -61.5491 & 17.94 & 112.84 & 15 & 100 & 50 & 90 & 7.4 \\ \hline
\textbf{14} & 18.4564 & -61.3716 & 5 & 112.34 & 15 & 100 & 50 & 90 & 7.4 \\ \hline
\textbf{15} & 18.4149 & -62.4217 & 17.94 & 117.86 & 15 & 100 & 50 & 90 & 7.4 \\ \hline
\textbf{16} & 18.7985 & -62.2075 & 5 & 117.86 & 15 & 100 & 50 & 90 & 7.4 \\ \hline
\textbf{17} & 18.7844 & -63.1649 & 17.94 & 110.46 & 20 & 100 & 50 & 90 & 7.4 \\ \hline
\textbf{18} & 19.1798 & -63.0087 & 5 & 110.46 & 20 & 100 & 50 & 90 & 7.4 \\ \hline
\textbf{19} & 16.4535 & -59.9029 & 17.94 & 136.99 & 15 & 100 & 50 & 90 & 7.4 \\ \hline
\textbf{20} & 16.7494 & -59.5716 & 5 & 136.99 & 15 & 100 & 50 & 90 & 7.4 \\ \hline
\textbf{21} & 17.0903 & -60.5996 & 17.94 & 138.71 & 15 & 100 & 50 & 90 & 7.4 \\ \hline
\textbf{22} & 17.3766 & -60.2580 & 5 & 138.71 & 15 & 100 & 50 & 90 & 7.4 \\ \hline
\textbf{23} & 17.8560 & -61.1559 & 17.94 & 141.07 & 15 & 100 & 50 & 90 & 7.4 \\ \hline
\textbf{24} & 18.1286 & -60.8008 & 5 & 141.07 & 15 & 100 & 50 & 90 & 7.4 \\ \hline
\end{tabular}
\captionsetup{justification=centering}
\caption{\label{tab:table-name}source parameters for a Mw 9.0 PRT co-seismic source based on 24 sub-faults (Gica eal,2008). Corresponding surface elevation computed with Okadas (1985) method is shown in fig 3}
\end{table}
\clearpage
Your issue here is that the table is too wide to fit within the text block. As such, LaTeX pushes is against the left margin and let it overflow into the right margin. If you don't want to change anything and just centre it, you can wrap the entire tabular inside a \makebox[\linewidth]:
\begin{table}
\centering
\small
\makebox[\linewidth]{%
\begin{tabular}{| *{10}{c|} }
<your table here>
\end{tabular}%
}
\caption{<caption>}
\end{table}
For more details and options, see My table doesn't fit; what are my options?
You can try the following:
\begin{center}
\begin{tabular}{ | c | c | c | }
\hline
symbol & value & unit \\ \hline
$z Na$ & 11 & - \\ \hline
$z F$ & 9 & - \\ \hline
$Emax Na$ & 0.545 & $[MeV]$ \\ \hline
\end{tabular}
\end{center}
Refer: How to center table in latex
I have the following code:
\begin{table}[ht]
\begin{center}
\begin{tabular}{ | l | l | l | l | l | l | l | }
\hline
\multirow{2}{*}{Oprava} & \multirow{2}{*}{zkratka} & \multirow{2}{*}{alg.} & chybovost \% & & & \\ \hline
& & & MAE & RSE & RMSE & RRSE \\ \hline
velikosti & vel. & NBM & & & & \\ \hline
& & c4.5 & & & & \\ \hline
& & kNN & & & & \\ \hline
& & SMO & & & & \\ \hline
bilateralne & bilat. & NBM & & & & \\ \hline
& & c4.5 & & & & \\ \hline
& & kNN & & & & \\ \hline
& & SMO & & & & \\ \hline
oprava & zkratka & NBM & & & & \\ \hline
& & c4.5 & & & & \\ \hline
& & kNN & & & & \\ \hline
& & SMO & & & & \\ \hline
oprava & zkratka & NBM & & & & \\ \hline
& & c4.5 & & & & \\ \hline
& & kNN & & & & \\ \hline
& & SMO & & & & \\ \hline
\end{tabular}
\end{center}
\caption{Multi-row table}
\label{tab:multicol}
\end{table}
And what I get is this:
I need to merge the cells, so that the text is not crossed out. The same for the rows with the repeated algorithms names - NBM, kNN etc ..... they should me merged and centered. Pls help.
Thanks
The solution to your problem is very simple. You should use \cline{4-7} instead of \hline. Namely \hline makes a horizontal line over the complete width of the table, while \cline{4-7} will only make a horizontal line from column 4 until 7, and thus not crossing the first ones.
To get the text in front of the repeated words centered and merged, you can use multirow{}{}, again in combination with \cline{}. More info about these commands at this link.
An example of the code is given below:
\begin{table}[]
\centering
\caption{My caption}
\label{my-label}
\begin{tabular}{|l|l|l|l|l|l|l|}
\hline
\multirow{2}{*}{Oprave} & \multirow{2}{*}{Zkratka} & \multirow{2}{*}{Alg.} & \multicolumn{4}{l|}{Chybovost \%} \\ \cline{4-7}
& & & MAE & RSE & RMSE & RRSE \\ \hline
\multirow{4}{*}{velikosti} & \multirow{4}{*}{vel.} & NBM & & & & \\ \cline{3-7}
& & c4.5 & & & & \\ \cline{3-7}
& & kNN & & & & \\ \cline{3-7}
& & SMO & & & & \\ \hline
\multirow{4}{*}{bilateralne} & \multirow{4}{*}{bilat.} & NBM & & & & \\ \cline{3-7}
& & c4.5 & & & & \\ \cline{3-7}
& & kNN & & & & \\ \cline{3-7}
& & SMO & & & & \\ \hline
\multirow{4}{*}{oprava} & \multirow{4}{*}{zkratka} & NBM & & & & \\ \cline{3-7}
& & c4.5 & & & & \\ \cline{3-7}
& & kNN & & & & \\ \cline{3-7}
& & SMO & & & & \\ \hline
\multirow{4}{*}{oprava} & \multirow{4}{*}{zkratka} & NBM & & & & \\ \cline{3-7}
& & c4.5 & & & & \\ \cline{3-7}
& & kNN & & & & \\ \cline{3-7}
& & SMO & & & & \\ \hline
\end{tabular}
\end{table}
Resulting into:
Note: if you have struggles with table generation, or you want a more quick way to easily make tables as you would do in Excel, you can use an online table generator for Latex.
I often use http://www.tablesgenerator.com/