[英]Issues in displaying negative values on bar chart in Matplotlib
我正在嘗試使用Matplotlib創建一個同時具有正值和負值的條形圖,並且在使負值顯示在Y軸上遇到困難。 運行代碼時,它將正確顯示所有正值(用紅色標記),但負值根本不顯示。 相反,我得到了標記為“ y1”的字符串的正值的重復項。 請參閱所附的圖片1和下面的我的代碼。
我使用的代碼是:
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
from matplotlib.pyplot import figure
data = pd.read_csv("C:\samplefile.csv")
fig = plt.figure()
figure(figsize = (22,3))
ax = plt.subplot(111)
x = data['Timing Event']
y = data['Diff Latency'].diff(periods = 1) > 0
y1 = data['Diff Latency'].diff(periods = 1) < 0
y_pos = np.arange(len(x))
plt.bar(y_pos, y, color=(1.0, 0, 0, 0.7))
plt.bar(y_pos, y1, color=(0, 0.6, 0, 0.7))
plt.tight_layout()
plt.show()
數據集有2列Timing Event,其編號為(0,1,2,3 ....),並用作索引和“ Diff Latency”,具有負值和正值。 示例數據集如下:
Timing Event Diff Latency
0 -4
1 3
2 1
3 -1
4 2
如果您只想在不同顏色的條形圖中繪制正值和負值,則可以根據此處顯示的方法直接使用熊貓圖
import pandas as pd
import matplotlib.pyplot as plt
fig, ax = plt.subplots()
data = pd.DataFrame({'Timing_Event':[0,1,2,3,4], 'Diff_Latency':[-4, 3, 1, -1, 2]})
data['sign'] = data['Diff_Latency'] > 0
data['Diff_Latency'].plot(kind='bar', color=data.sign.map({True: (1.0, 0, 0, 0.7), False: (0, 0.6, 0, 0.7)}),
ax=ax)
ax.axhline(0, color='k')
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.