python讀取csv數據輸出可視化圖片

跟着小象學院學python,今天學習了讀取csv數據輸出可視化圖片

老師的例子是window下的,我在linux下,系統字體跟例子的肯定不一樣

原先其他輸出可視化是用單獨部件設置字體,這裏輸出用了plot()整體輸出,沒有fontproperties=my_font 這樣參數

所以只能研究下設置整體參數爲什麼失效,很大概率應該是沒有相應字體吧

往常查找了一下找到一個方法,打印出字體管理器找到的字體果然沒有我想象的字體,找到了可用的字體

Alibaba PuHuiTi

好了,下面上代碼 bottom10_aqi.csv

City,AQI,PM2.5/1h,PM10/h,CO/1h,NO2/1h,O3/1h,O3/8h,SO2/1h
邯鄲,157,119,192,1.9,44,178,192,28
東莞,143,63,87,1.0,46,230,206,13
平度,141,81,119,2.6,28,207,203,14
鶴壁,133,54,105,1.27,39,151,195,19
德陽,129,37,80,0.65,26,196,190,10
平頂山,127,65,96,1.03,32,140,188,16
邢臺,126,84,162,1.3,25,179,187,30
安陽,123,39,95,1.02,31,137,184,17
濰坊,120,73,133,1.46,24,161,180,19
萊西,120,63,103,2.8,25,200,180,18

然後就是python文件:

#!/usr/bin/python
import pandas as pd
import matplotlib.pyplot as plt
from matplotlib.font_manager import FontManager

def main():
    """
        主函數
    """
    fm = FontManager()
    mat_fonts = set(f.name for f in fm.ttflist)
    print('字體信息:')
    print(mat_fonts)

    plt.rcParams['font.family'] = ['Alibaba PuHuiTi']
    plt.rcParams['axes.unicode_minus'] = False
    aqi_data = pd.read_csv('bottom10_aqi.csv')
    print('基本信息:')
    print(aqi_data.info())

    print('數據預覽(5行數據):')
    print(aqi_data.head())

    # 基本統計
    print('PM2.5最大值:', aqi_data['PM2.5/1h'].max())
    print('PM2.5最小值:', aqi_data['PM2.5/1h'].min())
    print('PM2.5均值:', aqi_data['PM2.5/1h'].mean())

    # 過濾數據
    clean_aqi_data=aqi_data[aqi_data['PM2.5/1h']>80]
    #print('PM2.5大於80:', clean_aqi_data)
    new_aqi_data= clean_aqi_data.sort_values(by=['PM2.5/1h'])
    print('PM2.5大於80 排序:\n', new_aqi_data)
    new_aqi_data.plot(kind='bar', x='City', y='PM2.5/1h', title='空氣質量PM2.5大於80的城市',
                      figsize=(8, 4))
    plt.savefig('aqi_bar.png')
    plt.show()

if __name__ == '__main__':
    main()

如果文件賦予權限,雙擊就能執行了,輸出圖片

如果不能執行但是在終端裏輸入python xx.py 能執行,那說明第一行的解釋器行尾有windows的換行符

把文件用linux格式另存一下,就可以了,相反如果是windows下第一行的解釋器要改爲windows路徑的python.exe

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章