File size: 1,398 Bytes
1ffaeb6
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
import matplotlib.pyplot as plt
import numpy as np

# Data
modalities = ["Image", "VisDoc", "Video"]
lora_8 = [62.7, 52.5, 32.4]
lora_16 = [63.2, 52.6, 33.5]
lora_32 = [60.0, 52.1, 32.7]

# Bar placement
x = np.array([0, 1, 2])  # modality positions
bar_width = 0.2
offset = 0.24  # control spacing between LoRA bars

# Font settings
plt.rcParams['font.family'] = 'DejaVu Sans'
plt.rcParams['font.size'] = 14

# Create plot
plt.figure(figsize=(7, 6))
bars1 = plt.bar(x - offset, lora_8, bar_width, label='LoRA 8', color='#1f77b4')
bars2 = plt.bar(x, lora_16, bar_width, label='LoRA 16', color='#ff7f0e')
bars3 = plt.bar(x + offset, lora_32, bar_width, label='LoRA 32', color='#2ca02c')

# Axes and labels
plt.xticks(x, modalities, fontsize=16)
plt.yticks(fontsize=16)
plt.xlabel("Modality", fontsize=18)
plt.ylabel("Performance", fontsize=18)
plt.title("Performance under Different LoRA Ranks", fontsize=18)
plt.ylim(30, 70)

# Annotate bars
for bars in [bars1, bars2, bars3]:
    for bar in bars:
        height = bar.get_height()
        plt.text(bar.get_x() + bar.get_width() / 2, height + 0.5,
                 f'{height:.1f}', ha='center', va='bottom', fontsize=14)

# Legend without frame
plt.legend(frameon=False, fontsize=14)
plt.grid(axis='y', linestyle='--', alpha=0.6)
plt.tight_layout()

# Save as PDF
plt.savefig("lora_rank_comparison_y30_wider.pdf", format='pdf', dpi=300)
plt.show()