跟着小象學院學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