• 请问为什么我plot生成的图像x轴刻度和标签是乱的


    关注 码龄 粉丝数 原力等级 -- 被采纳 被点赞 采纳率 xxxxxxxxxxxxjjj 2024-06-20 12:42 采纳率: 0% 浏览 4 首页/ 用户体验设计 / 请问为什么我plot生成的图像x轴刻度和标签是乱的 信息可视化python 为什么我生成的图像x轴刻度和标签是乱的 fileName=input('请输入要打开的文件名tmdb_5000_movies_budget_popularity_en.txt:') df=pd.read_csv(fileName,sep=",") from pandas import to_datetime # 将'release_date'列转换为日期时间格式 df['release_date'] = to_datetime(df['release_date']) # 提取年份并创建新的列'release_year' df['release_year'] = df['release_date'].dt.year # 现在基于'release_year'进行筛选 df = df[(df['release_year'] >= 2000) & (df['release_year'] <= 2010)] # 从排序后的数据集中每隔50个标题抽取一个,创建一个抽样标题列表 sampled_titles = df['title'][::50] # 按照电影title降序排序 df_sorted = df.sort_values(by='budget', ascending=False) # 开始绘制Budget的可视化图表 plt.figure(figsize=(12, 8), dpi=400) # 设置图表大小和分辨率 # 绘制折线图,x轴为电影标题,y轴为预算,颜色为红色,图例标签为'Budget' plt.plot(df_sorted['title'], df_sorted['budget'], color='red', label='Budget') # 设置图表标题、x轴和y轴的标签 plt.title('Movies Budget (2000-2010)') plt.xlabel('Movie Titles (Rotated for Clarity)') plt.ylabel('Budget') # 旋转x轴标签,斜45度 plt.xticks(rotation=45, fontsize=12) plt.xticks(sampled_titles) # 显示图例 plt.legend() # 自动调整子图参数,使之填充整个图像区域 plt.tight_layout() # 保存图表到指定路径和分辨率 plt.savefig('movies_en_budget_2000_2010.png', dpi=400) # 显示图表 plt.show() # 绘制Popularity的可视化图表,过程与上述Budget图表类似 df['popularity'] = df['popularity'].astype(float) df_sorted = df.sort_values(by='popularity', ascending=False) plt.figure(figsize=(12, 8), dpi=400) plt.plot(df_sorted['title'], df_sorted['popularity'], color='green', label='Popularity') plt.title('Movies Popularity from 2000 to 2010') plt.xlabel('Movie Titles') plt.ylabel('Popularity') plt.legend() plt.xticks(sampled_titles) # 旋转x轴标签,以便于阅读 plt.xticks(rotation=45, fontsize=12) plt.tight_layout() plt.savefig('movies_en_popularity_2000_2010.png', dpi=400) plt.show() print("任务5执行成功!") break 展开全部 收起 写回答 好问题 0 提建议 追加酬金 关注问题 微信扫一扫 点击复制链接 分享 邀请回答 编辑 收藏 删除 结题 收藏 举报 追加酬金 (90%的用户在追加酬金后获得了解决方案) 当前问题酬金 ¥ 0 (可追加 ¥500) ¥ 15¥ 20¥ 50¥ 100¥ 200 支付方式 扫码支付 二维码出错 点击刷新 支付金额 15 元 提供问题酬金的用户不参与问题酬金结算和分配 支付即为同意 《付费问题酬金结算规则》 结题 再想想 删除 再等等

    2条回答 默认 最新

    • 专家-赤兔[在线] 全栈领域优质创作者 2024-06-20 12:42
      关注

      引自免费微信小程序:皆我百晓生

      从你的问题描述来看,你正在尝试使用matplotlib来绘制电影的预算和受欢迎度的可视化图表,但遇到了x轴刻度和标签混乱的问题。这可能是由于以下几个原因导致的:

      1. 数据清洗和预处理阶段可能存在问题,导致数据格式或结构不符合预期。
      2. 在设置x轴刻度时可能存在问题,特别是在处理电影标题时。

      针对这些问题,我为你提供以下建议和解决方案:

      对于图1的问题:

      • 确保电影标题数据是清晰的,并且与预算数据匹配。检查数据框df'title'列的数据是否完整且没有重复。
      • 在设置x轴刻度时,尝试使用plt.xticks(range(len(df_sorted)), df_sorted['title'], rotation=45)来确保每个标题都与正确的位置对应。这样,x轴的刻度就会与电影标题匹配。

      对于图2的问题:

      • 同样地,确保受欢迎度数据与电影标题数据匹配。
      • 使用与图1相似的方法来设置x轴刻度。

      修改后的部分代码片段如下(主要修改了设置x轴刻度的部分):

      # ... 其他代码保持不变 ...
      
      # 开始绘制Budget的可视化图表
      plt.figure(figsize=(12, 8), dpi=400)  # 设置图表大小和分辨率
      # 绘制折线图
      plt.plot(df_sorted['title'], df_sorted['budget'], color='red', label='Budget')
      # 设置图表标题、x轴和y轴的标签
      plt.title('Movies Budget (2000-2010)')
      plt.xlabel('Movie Titles')  # 这里的标签描述可能需要调整,确保与x轴数据匹配
      plt.ylabel('Budget')
      # 旋转x轴标签,斜45度,并设置刻度为电影标题
      plt.xticks(range(len(df_sorted)), df_sorted['title'], rotation=45, fontsize=12)
      plt.legend()
      plt.tight_layout()
      plt.savefig('movies_en_budget_2000_2010.png', dpi=400)
      plt.show()
      
      # ... 其他代码保持不变 ...
      
      # 绘制Popularity的可视化图表
      # ... 类似地修改设置x轴刻度的部分 ...
      

      请尝试这些修改,并检查是否解决了你的问题。如果问题仍然存在,请提供更多关于数据或错误消息的详细信息,以便我能更准确地帮助你。

      展开全部

      评论 编辑记录
    • 阿里嘎多学长 2024-06-20 12:42
      关注

      以下内容由CHATGPT及阿里嘎多学长共同生成、有用望采纳:


      您好!根据您提供的代码和图像,确实存在几个可能导致x轴刻度和标签混乱的问题。以下是一些建议,希望能帮助您解决这个问题:

      1. 增加图表尺寸:您可以通过增加图表的尺寸来为x轴标签提供更多空间。例如,将 plt.figure(figsize=(12, 8), dpi=400) 中的 figsize 参数值增加,比如 (16, 9) 或更大。

      2. 优化 sampled_titles:您当前的代码是每隔50个标题抽取一个,这可能会导致x轴上有很多标签。您可以尝试增加这个间隔,比如每隔100个或200个标题抽取一个,减少x轴上的标签数量。

      3. 调整旋转角度:您可以尝试调整 plt.xticks(rotation=45) 中的旋转角度,比如使用 rotation=90 来完全垂直显示标签,这样可以减少标签之间的重叠。

      4. 使用更简洁的标签:如果电影标题太长,您可以考虑只显示标题的一部分,或者使用电影的缩写作为标签。

      5. 调整字体大小:减小字体大小也可以减少标签占用的空间,例如 plt.xticks(fontsize=8)

      6. 使用标签旋转和对齐:您可以使用 plt.xticks(ha='right') 来调整标签的对齐方式,使其更加紧凑。

      7. 使用交互式图表:如果可能的话,使用交互式图表库(如 plotly)可以让用户自己调整标签的显示方式。

      下面是根据上述建议修改后的代码示例:

      # ... 省略之前的代码 ...
      
      # 开始绘制Budget的可视化图表
      plt.figure(figsize=(16, 9), dpi=400)  # 增加图表尺寸
      # ... 省略中间的代码 ...
      
      # 绘制折线图
      plt.plot(df_sorted['title'], df_sorted['budget'], color='red', label='Budget')
      
      # ... 省略中间的代码 ...
      
      # 调整x轴标签的显示
      plt.xticks(sampled_titles, rotation=90, fontsize=10, ha='right')  # 垂直旋转标签并调整对齐
      
      # ... 省略中间的代码 ...
      
      plt.tight_layout()
      plt.savefig('movies_en_budget_2000_2010.png', dpi=400)
      plt.show()
      
      # ... 绘制Popularity的可视化图表的代码也做相应的调整 ...
      

      希望这些建议能够帮助您解决问题。如果还有其他问题或需要进一步的帮助,请随时告诉我。

      展开全部

      评论 编辑记录
    编辑
    预览

    报告相同问题?

  • 相关阅读:
    网络编程之:TCP服务器的简单实现
    java计算机毕业设计基于安卓Android的跨校区班车乘车预约系统APP
    tomcat的优化和tomcat和nginx实现动静分离:
    需永远在线的游戏公司,如何在线替换开源存储?
    Spring Boot原理分析(四):声明式事务
    【开题报告】基于SpringBoot的中小企业设备管理系统的设计与实现
    LeetCode刷题复盘笔记—一文搞懂纯0-1背包问题(动态规划系列第六篇)
    软件设计模式系列之二十三——策略模式
    网络——2021年大题解析
    WhatsApp自动营销软件是真实的吗?对做外贸有帮助吗?
  • 原文地址:https://ask.csdn.net/questions/8121580