英文:
How to put name in each of the filename in the x axis box graph
问题
当我运行我的代码来查看箱线图时,我注意到绘图的x轴上没有显示文件名,而是显示了1、2、3、4、5、6......
这是我目前正在使用的代码
import os
import numpy as np
import matplotlib.pyplot as plt
from PIL import Image
folder_path = "图像文件夹的路径"
# 获取文件夹中的TIFF图像列表
tiff_files = [f for f in os.listdir(folder_path) if f.endswith('.tiff')]
# 遍历文件夹中的图像
grey_values = []
for img_file in tiff_files:
img = Image.open(os.path.join(folder_path, img_file))
grey_values.append(np.asarray(img).ravel())
# 将灰度值绘制成箱线图
plt.boxplot(grey_values)
plt.title('TIFF图像的灰度值')
plt.xlabel('图像')
plt.ylabel('灰度值')
plt.xticks(range(1, len(tiff_files) + 1), tiff_files) # 这一行添加了文件名作为x轴标签
plt.show()
我尝试添加 "Label=tiff_files" 但会引发错误,不太清楚如何将文件名添加到x轴而不是普通的编号。
英文:
When I run my code to view the box graph, I noticed that the x-axis of the plot don't have filename in it instead showing 1,2,3,4,5,6.....
This is the code I'm working for now
import os
import numpy as np
import matplotlib.pyplot as plt
from PIL import Image
folder_path = "path to image folder"
# Get a list of the TIFF image in the folder
tiff_files = [f for f in os.listdir(folder_path) if f.endswith('.tiff')]
# Loop through the images in the folder
grey_values = []
for img_file in tiff_files:
img = Image.open(os.path.join(folder_path, img_file))
grey_values.append(np.asarray(img).ravel())
# Plot the grey values as a box graph
plt.boxplot(grey_values)
plt.title('Grey Values of TIFF Images')
plt.xlabel('Image')
plt.ylabel('Grey Value')
plt.show()
I have tried add "Label=tiff_files" but it throw errors and kind of clueless how to put filename instead of normal numbering.
答案1
得分: 1
使用 plt.xticks
函数
以下是一个示例(在我的情况下使用 .png
文件)
plt.figure(figsize=(16, 8))
plt.boxplot(grey_values)
# 设置 xticks,需要提供值和标签
xticks_range = range(1, len(tiff_files) + 1)
plt.xticks(xticks_range, labels=tiff_files, rotation=45, ha="right")
plt.title('TIFF 图像的灰度值')
plt.xlabel('图像')
plt.ylabel('灰度值')
plt.show()
请注意,如果您决定使用轴方法设计您的图形,您可以直接使用 ax.set_xticklabels
函数
英文:
Use the plt.xticks
function
Here is an example (working with .png
file in my case)
plt.figure(figsize=(16, 8))
plt.boxplot(grey_values)
# Set xticks, requires values and labels
xticks_range = range(1, len(tiff_files) + 1)
plt.xticks(xticks_range ,labels=tiff_files, rotation=45, ha="right")
plt.title('Grey Values of TIFF Images')
plt.xlabel('Image')
plt.ylabel('Grey Value')
plt.show()
Note that if you decide to design your figure using axis method, you can directly use ax.set_xticklabels
function
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论