fuill 2022-12-05 10:57 采纳率: 68.2%
浏览 33
已结题

python生成柱形图

python生成柱形图
生成下面这样的图表,怎样写样式,我写的有点问题

要求的样式

img

这是我写的

img

import csv  # 导入csv模块
from datetime import datetime
 
import matplotlib.pyplot as plt

filename = r'D:\python\fallraw_7041JA26clear.csv'
with open(filename) as f:
    reader = csv.reader(f)
    header_row = next(reader)  # 返回文件的下一行,在这便是首行,即文件头
    print(header_row)
 
#for index, column_header in enumerate(header_row):  # 对列表调用了 enumerate()来获取每个元素的索引及其值,方便我们提取需要的数据列
 #   print(index, column_header)
    print(header_row[0])
    # 从文件中获取最高温度
    dates, index, times,temperature, humidity, winddirection, windpower, rains, rains7041JA23, waterlevels7041JA23, rains7041JA24,waterlevels7041JA24, waterlevels= [], [], [], [], [], [], [], [], [], [], [], [], []
    current_date=[]
    i=0
    for row in reader:
        
        current_date_ = datetime.strptime(row[0], '%Y-%m-%d %H:%M')
        current_date.append(current_date_)
       # print(row)
        dates.append(row[0])
        index.append(row[1])
        times.append(row[2])
        temperature.append(row[3])
        humidity.append(row[4])
        winddirection.append(row[5])
        windpower.append(row[6])
        rains.append(row[7])
        rains7041JA23.append(row[8])
        waterlevels7041JA23.append(row[9])
        rains7041JA24.append(row[10])
        waterlevels7041JA24.append(row[11])
        waterlevels.append(row[12])
        #print(row)
        i+=1
        if i==55:
            break
        #high = int(row[5])
        #dates.append(current_date)
        #highs.append(high)
    #print(waterlevels)
plt.bar(temperature, dates,color='grey')
plt.show()
# 根据最高温度绘制图形
'''


plt.style.use('strptime')
fig, ax = plt.subplot()
ax.plot(dates,temperature, c='red')
print(dates)
print(current_date[5].strftime('%Y-%m-%d'))
print(type(dates[0]))
# 设置图形的格式
ax.set_title("text1", fontproperties="SimHei", fontsize=24)
ax.set_xlabel('', fontproperties="SimHei", fontsize=16)
fig.autofmt_xdate()
ax.set_ylabel("text2", fontproperties="SimHei", fontsize=16)
ax.tick_params(axis='both', which='major', labelsize=16)

plt.show()
'''
  • 写回答

2条回答 默认 最新

  • ShowMeAI 2022-12-05 11:20
    关注

    用subplots吧,类似下面示例代码这样:

    def plot_3x3(df, title):
        fig, axs = plt.subplots(3, 3, figsize=(20, 20))
        fig.suptitle(title, fontsize=16)
        df.plot(kind='bar', ax=axs[0, 0], x='date', y='temperature')
        df.plot(kind='bar', ax=axs[0, 1], x='date', y='humidity')
        df.plot(kind='bar', ax=axs[0, 2], x='date', y='winddirection')
        df.plot(kind='bar', ax=axs[1, 0], x='date', y='windpower')
        df.plot(kind='bar', ax=axs[1, 1], x='date', y='rains')
        df.plot(kind='bar', ax=axs[1, 2], x='date', y='rains7041JA23')
        df.plot(kind='bar', ax=axs[2, 0], x='date', y='waterlevels7041JA23')
        df.plot(kind='bar', ax=axs[2, 1], x='date', y='rains7041JA24')
        df.plot(kind='bar', ax=axs[2, 2], x='date', y='waterlevels7041JA24')
        plt.show()
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 12月16日
  • 已采纳回答 12月8日
  • 修改了问题 12月5日
  • 创建了问题 12月5日

悬赏问题

  • ¥15 基于卷积神经网络的声纹识别
  • ¥15 Python中的request,如何使用ssr节点,通过代理requests网页。本人在泰国,需要用大陆ip才能玩网页游戏,合法合规。
  • ¥100 为什么这个恒流源电路不能恒流?
  • ¥15 有偿求跨组件数据流路径图
  • ¥15 写一个方法checkPerson,入参实体类Person,出参布尔值
  • ¥15 我想咨询一下路面纹理三维点云数据处理的一些问题,上传的坐标文件里是怎么对无序点进行编号的,以及xy坐标在处理的时候是进行整体模型分片处理的吗
  • ¥15 CSAPPattacklab
  • ¥15 一直显示正在等待HID—ISP
  • ¥15 Python turtle 画图
  • ¥15 stm32开发clion时遇到的编译问题