<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
對右圖進行修改:
展示 10-15 年 PM 指數月平均資料的變化情況,一幅圖中有 6 條曲線,每年 1 條曲線。
Microsoft Windows 10 版本18363
PyCharm 2020.2.1 (Community Edition)
Python 3.8(Scrapy 2.4.0 + numpy 1.19.4 + pandas 1.1.4 + matplotlib 3.3.3)
對右圖進行修改:
from matplotlib import pyplot as plt import numpy as np fig, ax = plt.subplots() plt.style.use('classic') plt.title("square numbers") ax.set_xlim(-11, 11) ax.set_ylim(0, 100) x = np.array(range(-10, 11)) y = x * x rect1 = plt.bar(x, y) for r in rect1: ax.text(r.get_x(), r.get_height() / 2, r.get_height()) plt.show()
如圖使用 classic 風格,x 軸資料為[-10, 10]的整數,構造的函數為 y=x2,顯示位置並將其將數值改到了柱形圖內部垂直居中的位置。
對成績資料 data1402.csv 進行分段統計:每 5 分作為一個分數段,展示出每個分數段的人數直方圖。
from matplotlib import pyplot as plt import numpy as np import pandas as pd df = pd.read_csv("./data1402.csv", encoding='utf-8', dtype=str) df = pd.DataFrame(df, columns=['score'], dtype=np.float) section = np.array(range(0, 105, 5)) result = pd.cut(df['score'], section) count = pd.value_counts(result, sort=False) fig, ax = plt.subplots() plt.style.use('classic') ax.set_xlim(0, 100) rect1 = plt.bar(np.arange(2.5, 100, 5), count, width=5) for r in rect1: ax.text(r.get_x(), r.get_height(), r.get_height()) plt.show()
自行建立出 10 個學生的 3 個學期排名資料,並通過直方圖進行對比展示。
import random semester1 = np.arange(1, 11) semester2 = np.arange(1, 11) semester3 = np.arange(1, 11) random.shuffle(semester1) random.shuffle(semester2) random.shuffle(semester3) df = pd.DataFrame({'semester1':semester1, 'semester2':semester2, 'semester3':semester3}) print(df) df.to_csv("data1403.csv", encoding="utf-8")
使用如上程式碼建立出隨機的排名資料。
df = pd.read_csv("./data1403.csv", encoding='utf-8', dtype=str) df = pd.DataFrame(df, columns=['semester1', 'semester2', 'semester3'], dtype=np.int) df['total'] = (df['semester1'] + df['semester2'] + df['semester3']) / 3 df = df.sort_values('total') fig, ax = plt.subplots() plt.style.use('classic') plt.title('RANK') width = 0.2 x = np.array(range(0, 10)) rect1 = ax.bar(x-2*width, df['semester1'], width=width, label='semester1') rect2 = ax.bar(x-width, df['semester2'], width=width, label='semester2') rect3 = ax.bar(x, df['semester3'], width=width, label='semester3') for r in rect1: ax.text(r.get_x(), r.get_height(), r.get_height()) for r in rect2: ax.text(r.get_x(), r.get_height(), r.get_height()) for r in rect3: ax.text(r.get_x(), r.get_height(), r.get_height()) plt.legend(ncol=1) plt.show()
如上程式碼繪圖:
線圖 :
import numpy as np from matplotlib import pyplot as plt x = np.linspace(-5 * np.pi, 5 * np.pi, 500) y1 = 3 * np.cos(x) y2 = np.sin(4*x) fig, ax = plt.subplots() plt.style.use('classic') ax.spines["right"].set_visible(False) ax.spines["top"].set_visible(False) ax.spines['bottom'].set_position(('data',0)) ax.xaxis.set_ticks_position('bottom') ax.spines['left'].set_position(('data',0)) ax.yaxis.set_ticks_position('left') plt.plot(x, y1, color='blue', linestyle='-', label='y=3cosx') plt.plot(x, y2, color='red', linestyle='-', label='y=sin3x') plt.legend() plt.show()
用線圖展示北京空氣質量資料
展示 10-15 年 PM 指數月平均資料的變化情況,一幅圖中有 6 條曲線,每年 1 條曲線。
import numpy as np import pandas as pd from matplotlib import pyplot as plt orig_df = pd.read_csv("./BeijingPM20100101_20151231.csv", encoding='utf-8', dtype=str) orig_df = pd.DataFrame(orig_df, columns=['year', 'month', 'PM_US Post']) df = orig_df.dropna(0, how='any') df['month'] = df['month'].astype(int) df['year'] = df['year'].astype(int) df['PM_US Post'] = df['PM_US Post'].astype(int) df.reset_index(drop=True, inplace=True) num = len(df) section = np.arange(1, 13) record = 0 fig, ax = plt.subplots() plt.style.use('classic') plt.title("2010-2015 Beijing average PM2.5(from PM_US Post) per month") for nowyear in range(2010, 2016): i = record result = [0 for i in range(13)] nowsum = 0 cntday = 0 nowmonth = 1 while i < num: if df['month'][i] == nowmonth: cntday = cntday + 1 nowsum = nowsum + df['PM_US Post'][i] else: if df['year'][i] != nowyear: record = i result[nowmonth] = nowsum / cntday break result[nowmonth] = nowsum / cntday cntday = 1 nowsum = df['PM_US Post'][i] nowmonth = df['month'][i] i = i + 1 result = result[1:] # x = np.array(range(1, 13)) plt.plot(x, result, linestyle='-', label=str(nowyear)) plt.legend() plt.show()
到此這篇關於Python實現資料視覺化案例分析的文章就介紹到這了,更多相關Python資料視覺化內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45